ffmpeg ऑडियो परिवर्तित नहीं करता है


1

मैं अपनी वीडियो फ़ाइल परिवर्तित करने का प्रयास कर रहा हूं। यहाँ है

Input #0, avi, from 'file.mpg':
  Metadata:
    encoder         : MEncoder SVN-r37289
  Duration: 01:32:15.60, start: 0.000000, bitrate: 123104 kb/s
    Stream #0:0: Video: rawvideo (YUY2 / 0x32595559), yuyv422, 640x480, 25 tbr, 25 tbn, 25 tbc
    Stream #0:1: Audio: mp2 (P[0][0][0] / 0x0050), 48000 Hz, stereo, s16, 224 kb/s

फ़ाइल ही ठीक काम करती है और अद्भुत ध्वनि है। दुर्भाग्य से जब भी मैं इस वीडियो को परिवर्तित करने के लिए ffmpeg को निष्पादित करने का प्रयास करता हूं, तो मुझे आउटपुट फ़ाइल मिलती है जिसमें कोई ऑडियो नहीं है (और यह -amp के कारण नहीं है)।

यहां तक ​​कि जब मैं वीडियो के बिना सिर्फ ऑडियो को किसी अन्य फ़ाइल में निकालने की कोशिश कर रहा हूं तो यह बिना ऑडियो के ऑडियो ट्रैक का उत्पादन करता है। यहां कुछ उदाहरण हैं जिनका मेरे पास शुद्ध ऑडियो रूपांतरण है (यह कोई फर्क नहीं पड़ता कि मैं किस लक्ष्य प्रारूप का उपयोग करना चाहता हूं):

 $ ffmpeg -i abi.mpg -map 0:1 output.mp3 
Input #0, avi, from 'abi.mpg':
  Metadata:
    encoder         : MEncoder SVN-r37289
  Duration: 01:32:15.60, start: 0.000000, bitrate: 123104 kb/s
    Stream #0:0: Video: rawvideo (YUY2 / 0x32595559), yuyv422, 640x480, 122872 kb/s, 25 fps, 25 tbr, 25 tbn, 25 tbc
    Stream #0:1: Audio: mp2 (P[0][0][0] / 0x0050), 48000 Hz, stereo, s16p, 224 kb/s
File 'output.mp3' already exists. Overwrite ? [y/N] y
Output #0, mp3, to 'output.mp3':
  Metadata:
    TSSE            : Lavf56.4.101
    Stream #0:0: Audio: mp3 (libmp3lame), 48000 Hz, stereo, s16p
    Metadata:
      encoder         : Lavc56.1.100 libmp3lame
Stream mapping:
  Stream #0:1 -> #0:0 (mp2 (native) -> mp3 (libmp3lame))
Press [q] to stop, [?] for help
size=       3kB time=00:01:20.66 bitrate=   0.3kbits/s    
video:0kB audio:3kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 8.779762%

आप समझ सकते हैं! 1:20 मिनट के लिए 3kB फ़ाइल का आकार और अगर मैं स्रोत फ़ाइल चलाने की कोशिश कर रहा हूँ तो ध्वनि अच्छी तरह से खेल रही है।

और यहाँ भी डिबग आउटपुट:

 $ ffmpeg -i file.mpg -ss 8 -c:a libfaac -b:a 192k -map 0:1 output.m4a
Input #0, avi, from 'file.mpg':
  Metadata:
    encoder         : MEncoder SVN-r37289
  Duration: 01:32:15.60, start: 0.000000, bitrate: 123104 kb/s
    Stream #0:0: Video: rawvideo (YUY2 / 0x32595559), yuyv422, 640x480, 122872 kb/s, 25 fps, 25 tbr, 25 tbn, 25 tbc
    Stream #0:1: Audio: mp2 (P[0][0][0] / 0x0050), 48000 Hz, stereo, s16p, 224 kb/s
File 'output.m4a' already exists. Overwrite ? [y/N] y
Output #0, ipod, to 'output.m4a':
  Metadata:
    encoder         : Lavf56.4.101
    Stream #0:0: Audio: aac (libfaac) (mp4a / 0x6134706D), 48000 Hz, stereo, s16, 192 kb/s
    Metadata:
      encoder         : Lavc56.1.100 libfaac
Stream mapping:
  Stream #0:1 -> #0:0 (mp2 (native) -> aac (libfaac))
debug=1     8kB time=00:04:10.07 bitrate=   0.3kbits/s    
debug=2     8kB time=00:04:26.19 bitrate=   0.3kbits/s    
debug=4     9kB time=00:04:42.34 bitrate=   0.3kbits/s    
debug=8     9kB time=00:04:42.34 bitrate=   0.3kbits/s    
size=      12kB time=00:05:46.84 bitrate=   0.3kbits/s    
video:0kB audio:11kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 8.049674%
Input file #0 (abi.mpg):
  Input stream #0:0 (video): 9655 packets read (5932032000 bytes); 
  Input stream #0:1 (audio): 24 packets read (16128 bytes); 24 frames decoded (27648 samples); 
  Total: 9679 packets (5932048128 bytes) demuxed
Output file #0 (output.m4a):
  Output stream #0:0 (audio): 25 frames encoded (25600 samples); 26 packets muxed (11193 bytes); 
  Total: 26 packets (11193 bytes) muxed
24 frames successfully decoded, 0 decoding errors
[AVIOContext @ 0x1ab91a0] Statistics: 30 seeks, 49 writeouts
[AVIOContext @ 0x1afc500] Statistics: 5954303224 bytes read, 369 seeks

क्या मुझसे कुछ ग़लत हो रहा है?

upd1। यहाँ ffmpeg जानकारी है:

ffmpeg version 2.4.2 Copyright (c) 2000-2014 the FFmpeg developers
  built on Oct  5 2014 09:31:05 with gcc 4.9.1 (Debian 4.9.1-16)
  configuration: --prefix=/usr --extra-cflags='-g -O2 -fstack-protector-strong -Wformat -Werror=format-security ' --extra-ldflags='-Wl,-z,relro' --cc='ccache cc' --enable-shared --enable-libmp3lame --enable-gpl --enable-nonfree --enable-libvorbis --enable-pthreads --enable-libfaac --enable-libxvid --enable-postproc --enable-x11grab --enable-libgsm --enable-libtheora --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libx264 --enable-libspeex --enable-nonfree --disable-stripping --enable-libvpx --enable-libschroedinger --disable-encoder=libschroedinger --enable-version3 --enable-libopenjpeg --enable-librtmp --enable-avfilter --enable-libfreetype --enable-libvo-aacenc --disable-decoder=amrnb --enable-libvo-amrwbenc --enable-libaacplus --libdir=/usr/lib/x86_64-linux-gnu --disable-vda --enable-libbluray --enable-libcdio --enable-gnutls --enable-frei0r --enable-openssl --enable-libass --enable-libopus --enable-fontconfig --enable-libpulse --disable-mips32r2 --disable-mipsdspr1 --disable-mipsdspr2 --enable-libvidstab --enable-libzvbi --enable-avresample --disable-htmlpages --disable-podpages --enable-libiec61883 --enable-libfdk-aac --enable-vaapi --enable-libx265 --enable-libdc1394 --disable-altivec --shlibdir=/usr/lib/x86_64-linux-gnu
  libavutil      54.  7.100 / 54.  7.100
  libavcodec     56.  1.100 / 56.  1.100
  libavformat    56.  4.101 / 56.  4.101
  libavdevice    56.  0.100 / 56.  0.100
  libavfilter     5.  1.100 /  5.  1.100
  libavresample   2.  1.  0 /  2.  1.  0
  libswscale      3.  0.100 /  3.  0.100
  libswresample   1.  1.100 /  1.  1.100
  libpostproc    53.  0.100 / 53.  0.100
Hyper fast Audio and Video encoder

Ffmpeg के किस संस्करण के साथ आप इसका परीक्षण कर रहे हैं? कृपया अपनी कमांड लाइन आउटपुट को छोटा न करें। क्या यह अन्य फ़ाइलों के साथ काम करता है? ऑडियो फ़ाइल की जांच के लिए आप किस खिलाड़ी का उपयोग कर रहे हैं? (क्या यह दूसरों के साथ काम करता है?) भी इस बग
slhck

@slhck, क्षमा करें, प्रश्न अपडेट किया गया था। ffmpeg की जानकारी अब इसमें है। हां, रूपांतरण अन्य फ़ाइलों के साथ काम करता है। मैं आमतौर पर सभी फाइलों की जांच करता हूं, हालांकि इस मामले में यह स्पष्ट रूप से खिलाड़ी की गलती नहीं है, क्योंकि 3kB फाइल सीए में 2 मिनट 192k ऑडियो नहीं है। लिंक के लिए धन्यवाद मैं इसकी जांच करूंगा।
भीड़

हाँ। मुझे लगता है कि यह एक बग रिपोर्ट दर्ज करने के लिए समझ में आता है, आदर्श रूप से नमूना फ़ाइल के साथ जो समस्या को प्रदर्शित करता है।
slhck

जवाबों:


2

MP2 रूपांतरण करते समय ffmpeg गलत समय सीमाओं की गणना करता है -> कोई भी चल रहा है। इसीलिए रूपांतरण रुकावट के बाद ऑडियो ट्रैक सुनने के लिए बहुत छोटा था और ऐसा लगता था कि यह खाली है।

पूर्ण रूपांतरण चलाने के लिए अच्छा उत्पादन किया।


दिलचस्प, जानना अच्छा है!
slhck
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.