ऑडियो कोडेक बदलना चाहते हैं, लेकिन ffmpeg के साथ वीडियो सेटिंग रखें


27

मेरे पास एक वीडियो है जिसके लिए मैं ऑडियो कोडेक को AAC 320 kbps / 44.100 kHz में परिवर्तित करना चाहूंगा। मैं ऐसे ffmpeg स्विच के लिए क्या उपयोग करूँगा कि सभी वीडियो सेटिंग्स और कोडेक एक समान रहें, लेकिन केवल ऑडियो कोडेक और सेटिंग्स बदल जाती हैं?

यहाँ मेरा वीडियो है:

$ ffmpeg -i Winnipeg.rb\ Scala-Talk.mov 
FFmpeg version SVN-r25375, Copyright (c) 2000-2010 the FFmpeg developers
  built on Oct  6 2010 13:02:41 with gcc 4.2.1 (Apple Inc. build 5664)
  configuration: --enable-libmp3lame --enable-shared --disable-mmx --arch=x86_64
  libavutil     50.32. 2 / 50.32. 2
  libavcore      0. 9. 1 /  0. 9. 1
  libavcodec    52.92. 0 / 52.92. 0
  libavformat   52.80. 0 / 52.80. 0
  libavdevice   52. 2. 2 / 52. 2. 2
  libavfilter    1.48. 0 /  1.48. 0
  libswscale     0.12. 0 /  0.12. 0

Seems stream 0 codec frame rate differs from container frame rate: 2000.00 (2000/1) -> 10.00 (10/1)
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'Winnipeg.rb Scala-Talk.mov':
  Metadata:
    major_brand     : qt  
    minor_version   : 537199360
    compatible_brands: qt  
  Duration: 01:10:53.00, start: 0.000000, bitrate: 283 kb/s
    Stream #0.0(eng): Video: h264, yuv420p, 800x598, 94 kb/s, 10 fps, 10 tbr, 1k tbn, 2k tbc
    Stream #0.1(eng): Audio: adpcm_ima_qt, 22050 Hz, 1 channels, s16
    Stream #0.2(eng): Audio: adpcm_ima_qt, 22050 Hz, 1 channels, s16
At least one output file must be specified

अग्रिम में बहुत धन्यवाद! Ffmpeg के साथ एक चीज जो मैं कभी नहीं कर पा रहा हूं वह यह है कि जिन चीजों को आप नहीं बदलना चाहते, उनके लिए हर छोटी सी सेटिंग को फिर से व्यवस्थित करने के बिना सिर्फ "ट्वीक" फाइलें कैसे हैं।


ऑडियो (साथ ही वीडियो) काफी कम गुणवत्ता वाला प्रतीत होता है। ध्यान दें कि आप वास्तव में प्रारूप को बदलते हुए, नमूना दर में वृद्धि और बिटरेट को बढ़ाकर ऑडियो की गुणवत्ता में वृद्धि नहीं करेंगे।
फोर्स फ्लो

जवाबों:


35

एहसान के जवाब का एक संकलन fletom की टिप्पणी के साथ जो मेरे लिए काम करता है, दोनों के लिए धन्यवाद।

ffmpeg -i input.avi -acodec mp3 -vcodec copy out.avi

सिर्फ आत्म संदर्भ के लिए क्योंकि मैं हमेशा इस -vcodec copyभाग को भूल जाता हूं
igorushi

2
क्या आप इसे समझाने के लिए अपने उत्तर का विस्तार कर सकते हैं? धन्यवाद।
फिक्सर 1234

2
-i input.aviवह फ़ाइल निर्दिष्ट करता है जिसे आप कनवर्ट करना चाहते हैं। out.aviपरिवर्तित फ़ाइल है। -acodec mp3आउटपुट फ़ाइल में लिखते समय ऑडियो स्ट्रीम को एमपी 3 में बदलना कहते हैं। vcodec copyइसे बदलने के बिना आउटपुट फाइल में वीडियो स्ट्रीम को कॉपी करने के लिए कहते हैं।
वोडिन

8

हार्ड जज करना कि आप क्या कर रहे हैं, क्योंकि ffmpeg कमांड आपके पोस्ट में थोड़ी गड़बड़ी थी।

ऑडियो ट्रैक बदलने के लिए:

ffmpeg -i test.avi -i normalized.mp3 -map 0:0 -map 1:0 -vcodec copy -acodec copy new_test.avi

उपरोक्त मापदंडों के बारे में अधिक जानकारी में पाया गया है: FFmpeg प्रलेखन


1
धन्यवाद। इससे मेरी समस्या हल हो गई। जब मैं दौड़ता हूं ffmpeg -i old.mkv -i onlySound.m4a out.mkvतो ऑपरेशन लंबा होता है। वह सू क्यों है?
Zeta.Investigator

6

यदि आप केवल ऑडियो और / या वीडियो कोडेक बदलना चाहते हैं, तो आप उन्हें बस मापदंडों जैसे जोड़ सकते हैं:

केवल एमपी 3 में ऑडियो कोडेक बदलें (क्या कभी मूल कोडेक था)

ffmpeg -i input.avi -acodec mp3 out.avi

बस वीडियो कोडेक को h264 में बदलें

ffmpeg -i input.avi -vcodec h264 out.avi

यह नोट करना अच्छा है कि ffmpeg को नए कोडेक के एन्कोडिंग का समर्थन करना चाहिए। Https://stackoverflow.com/questions/3377300/what-are-all-codecs-supported-by-ffmpeg देखें


5
इसने मेरे लिए काम किया, लेकिन मुझे -vcodec copyअपने वीडियो को h.264 में ट्रांसकोड करने की कोशिश से रोकने के लिए जोड़ना पड़ा। डनो ने ऐसा क्यों किया कि वह डिफ़ॉल्ट रूप से।
fletom

-1

आप हैंडब्रेक का उपयोग क्यों नहीं करते हैं जो वीडियो को रखने और ऑडियो को बदलने देता है और यह FFmpeg के लिए एक GUI है और यह एक आकर्षण की तरह काम करता है।


3
हैंडब्रेक वास्तव में ऐसा नहीं कर सकता; यह ऑडियो या उपशीर्षक धाराओं की एक सरल प्रतिलिपि कर सकता है, लेकिन यह हमेशा वीडियो को फिर से एन्कोड करता है।
डेविल्स
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.