ffmpeg não converte áudio

1

Estou tentando converter meu arquivo de vídeo. Aqui está

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

O próprio arquivo funciona bem e tem um som incrível. Infelizmente sempre que eu tento executar o ffmpeg para converter este vídeo eu recebo arquivo de saída sem áudio (e isso não é por causa de -map).

Mesmo quando estou tentando extrair apenas áudio sem vídeo para outro arquivo, ele produz uma faixa de áudio sem áudio. Aqui estão alguns exemplos que eu tenho com conversão de áudio puro (não importa qual formato de destino eu quero usar):

 $ 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%

Você vê! Tamanho de arquivo de 3kB por 1:20 minutos e se eu estou tentando reproduzir o arquivo de origem, o som está tocando bem.

E até depurar a saída:

 $ 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

Estou fazendo algo errado?

upd1. aqui está a informação do 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
    
por rush 18.10.2014 / 19:44

1 resposta

2

O ffmpeg calcula intervalos de tempo incorretos enquanto a conversão mp2 - > qualquer um está em andamento. é por isso que após a interrupção da conversão, a faixa de áudio produzida era curta demais para ouvi-la e parecia que estava vazia.

executar a conversão completa produziu a boa saída.

    
por 19.10.2014 / 09:59