FFmpeg के साथ इसे छोटा करने के लिए वीडियो का आकार कैसे बदलें


101

क्या FFmpeg के साथ उन्हें छोटा करने के लिए मेरे वीडियो का आकार बदलना संभव है?

मेरे पास 1024x576 का एक मूल वीडियो आयाम है, अब मैं आवश्यकता को पूरा करने के लिए 720x480 में वीडियो का आकार बदलना चाहता हूं।

मैं यह कैसे कर सकता हूँ?


ffmpegपदावनत किया जा सकता है, यहाँ और यहाँ
नट्टी के बारे में अखरोट

13
@nuttyaboutnatty "पदावनत" संदेश केवल पुराने, मृत, नकली " ffmpeg" लिबाव फोर्क से लागू होते हैं, ffmpegFFmpeg से नहीं जो 15.04 में वापस आए।
ललगन

जवाबों:


163

सबसे बुनियादी उदाहरण यह है:

ffmpeg -i input.avi -s 720x480 -c:a copy output.mkv

का उपयोग करते हुए फिल्टर और अधिक लचीलापन प्रदान करेगा:scale

ffmpeg -i input.avi -filter:v scale=720:-1 -c:a copy output.mkv

-1Ffmpeg बता स्वचालित रूप से पक्षानुपात बनाए रखने के लिए प्रदान की जाती चौड़ाई के संबंध में सही ऊंचाई चुनने के लिए होगा। -1चौड़ाई के लिए भी इस्तेमाल किया जा सकता है अगर आप एक दी गई ऊंचाई प्रदान करते हैं।


उपयोग करते समय स्केल का एक नकारात्मक पहलू libx264यह है कि इस एनकोडर को भी मानों की आवश्यकता होती है और स्केल स्वचालित रूप से एक अजीब मूल्य चुन सकता है जिसके परिणामस्वरूप त्रुटि होती है width or height not divisible by 2:। आप किसी दिए गए कद (इस उदाहरण में 720) के लिए एक समान मूल्य चुनने का पैमाना बता सकते हैं:

scale="trunc(oh*a/2)*2:720"

... या दी गई चौड़ाई (इस उदाहरण में 1280):

scale="1280:trunc(ow/a/2)*2"

ध्यान दें कि आपके ffmpeg बिल्ड में पहचान -cया -filterविकल्प नहीं होने की शिकायत हो सकती है । यह भी समर्थन नहीं कर सकते हैं scale। उस मामले में आपको एक नए ffmpeg का उपयोग करना चाहिए, जिसे आप एक स्थिर बिल्ड के रूप में डाउनलोड कर सकते हैं , या अपने आप को संकलित कर सकते हैं


1
मैंने कोशिश की ffmpeg -i output.mkv -filter:v scale=720:-1 -acodec copy -threads 12 output_shrink.mkv(ffmpeg संस्करण 0.8.6-6: 0.8.6-0ubuntu0.12.10.1.1 पर) लेकिन त्रुटि मिलीUnrecognized option 'filter:v'
doug65536

6
मैन पेज के माध्यम से ffmpeg के लिए खुदाई करने के बाद कई बार मैंने पाया कि इसके बजाय -filter:v, विकल्प को बदल दिया गया प्रतीत होता है -vf
doug65536

2
@ doug65536 -filter:vऔर -vfदोनों ठीक हैं। आपके द्वारा उपयोग किया जा रहा उबंटू संस्करण टूटा और पुराना है - यह वास्तव में FFmpeg का नहीं है ffmpeg, लेकिन इसी नाम के तहत Libav (FFmpeg कांटा) द्वारा आपूर्ति की गई बाइनरी है।
slhck

1
@MightyPork शायद आपका ffmpeg बिल्ड पुराना हो गया है - क्या समस्याएं हैं? वैसे भी, इसने वास्तव में मुझे (साथ ffmpeg version 2.4.10) कुछ जगह खाली करने के लिए कुछ बड़े पैमाने पर वीडियो के आकार को कम करने में मदद की - धन्यवाद!
विल्फ

4
'-c' -codec के लिए छोटा है, ':' a 'ऑडियो स्ट्रीम (एस) को निर्दिष्ट करता है,' कॉपी 'कॉपी कोडेक को निर्दिष्ट करता है, जो बिना रीएन्कोड किए स्ट्रीम (एस) (इस मामले में ऑडियो) को कॉपी करता है। मूल रूप से ऑडियो स्ट्रीम से होकर गुजरेगा। यह सामान्य है जब आप केवल वीडियो स्ट्रीम में हेरफेर कर रहे हैं।
जिम्हार्क

14

मैं वीडियो और छवियों के लिए rescaling करने के लिए निम्न आदेशों का उपयोग करता हूं। निश्चित चौड़ाई और ऊंचाई के लिए -

ffmpeg -i input.avi -vf scale="720:480" output.avi

और यदि आप पहलू अनुपात को बनाए रखना चाहते हैं, तो ऊंचाई को -1 मानें और यह स्वतः ही चौड़ाई के आधार पर आकार ले लेगा -

ffmpeg -i input.avi -vf scale="720:-1" output.avi

यदि आप इनपुट आकार के आधार पर स्केल करना चाहते हैं जैसे। आप चौड़ाई / ऊँचाई को घटा सकते हैं, जो आप कर सकते हैं-

ffmpeg -i input.avi -vf scale="iw/1:ih/2" output.avi

ध्यान दें :

iw : input width
ih : input height

स्टेटिक बिल्ड से डाउनलोड किया जा सकता है - https://johnvansickle.com/ffmpeg/

प्रलेखन: https://ffmpeg.org/ffmpeg.html#filter_005foption


काम नहीं कर रहा। हैंडलर_name पर अटका: साउंड हैंडल
एम ठक्कर

मुझे इस कमांड के साथ एक भयानक वीडियो क्वालिटी मिली। ज्यादा बेहतर अगर मैं output.mp4 बनाऊं, avi नहीं। इसलिए विस्तार मायने रखता है।
sekrett
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.