Acabei de atualizar para o 14.04 e encontrei o mesmo problema. Adicionar "-b 256k" corrigiu para mim (embora o MP3 resultante tenha sido gerado com uma taxa de bits de 160Kbps em vez da taxa original de 256Kbps).
Meu objetivo é converter um arquivo WAV em MP3 em 14.04 (64 bits).
O arquivo wav é "Assinado 16 bit Little Endian, Taxa 16000 Hz, Mono" e é conhecido como bom. Ele joga bem com aplay
, também converte com sucesso com ffmpeg no OS X.
Obrigado a este post , Eu aprendi que o ffmpeg não faz parte do repositório 14.04 padrão e que avconv
é o substituto.
Eu instalei isso com sudo apt-get install libav-tools
Aqui está o erro com aconv quando tento converter wav em mp3:
user@L114:/tmp$ avconv -i sound_2014-06-01_08-51-31.wav s1.mp3
avconv version 9.13-6:9.13-0ubuntu0.14.04.1, Copyright (c) 2000-2014 the Libav developers
built on May 9 2014 13:34:03 with gcc 4.8 (Ubuntu 4.8.2-19ubuntu1)
[wav @ 0x150cd40] max_analyze_duration reached
Guessed Channel Layout for Input Stream #0.0 : mono
Input #0, wav, from 'sound_2014-06-01_08-51-31.wav':
Duration: 00:02:55.04, bitrate: 256 kb/s
Stream #0.0: Audio: pcm_s16le, 16000 Hz, mono, s16, 256 kb/s
Assertion mpah.frame_size >= (32 + 4 + 4 + 4 + 4 + 100) failed at /build/buildd/libav-9.13/libavformat/mp3enc.c:198
Aborted (core dumped)
Como posso corrigir isso? Ou isso é um bug a ser registrado?
Não é impossível que existam algumas incompatibilidades na caixa, devido a outros pacotes previamente instalados nas tentativas de obter pyaudio
funcionando. Isso é o que criou o arquivo wav.
Alguma outra informação necessária para ajudar a diagnosticar isso?
P.S. Antes de saber de avconv esta manhã, eu consegui baixar uma versão pré-construída do ffmpeg (como tarball, não um pacote instalável). No entanto, o arquivo convertido não era bom e soa como "ruído branco" muito alto. Estou incluindo a saída do console do ffpmeg abaixo, caso isso ofereça pistas adicionais.
Por favor, saiba que minha preferência é para resolver isso com o avconv, já que essa é a ferramenta de avanço.
user@L114:/tmp$ ffmpeg -i sound_2014-06-01_08-51-31.wav s1.mp3
ffmpeg version N-63624-g4ba8560 Copyright (c) 2000-2014 the FFmpeg developers
built on May 31 2014 05:37:43 with gcc 4.6 (Debian 4.6.3-1)
configuration: --prefix=/root/ffmpeg-static/64bit --extra-cflags='-I/root/ffmpeg-static/64bit/include -static' --extra-ldflags='-L/root/ffmpeg-static/64bit/lib -static' --extra-libs='-lxml2 -lexpat -lfreetype' --enable-static --disable-shared --disable-ffserver --disable-doc --enable-bzlib --enable-zlib --enable-postproc --enable-runtime-cpudetect --enable-libx264 --enable-gpl --enable-libtheora --enable-libvorbis --enable-libmp3lame --enable-gray --enable-libass --enable-libfreetype --enable-libopenjpeg --enable-libspeex --enable-libvo-aacenc --enable-libvo-amrwbenc --enable-version3 --enable-libvpx
libavutil 52. 87.100 / 52. 87.100
libavcodec 55. 65.100 / 55. 65.100
libavformat 55. 42.100 / 55. 42.100
libavdevice 55. 13.101 / 55. 13.101
libavfilter 4. 5.100 / 4. 5.100
libswscale 2. 6.100 / 2. 6.100
libswresample 0. 19.100 / 0. 19.100
libpostproc 52. 3.100 / 52. 3.100
Guessed Channel Layout for Input Stream #0.0 : mono
Input #0, wav, from 'sound_2014-06-01_08-51-31.wav':
Duration: 00:02:55.04, bitrate: 256 kb/s
Stream #0:0: Audio: pcm_s16le ([1][0][0][0] / 0x0001), 16000 Hz, mono, s16, 256 kb/s
Output #0, mp3, to 's1.mp3':
Metadata:
TSSE : Lavf55.42.100
Stream #0:0: Audio: mp3 (libmp3lame), 16000 Hz, mono, s16p
Metadata:
encoder : Lavc55.65.100 libmp3lame
Stream mapping:
Stream #0:0 -> #0:0 (pcm_s16le -> libmp3lame)
Press [q] to stop, [?] for help
size= 513kB time=00:02:55.07 bitrate= 24.0kbits/s
video:0kB audio:513kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.042823%
========
ATUALIZAÇÃO em 8 de junho de 2014:
Descobri que o ffmpeg está funcionando bem, afinal. A sugestão do Aquarius Power de usar o mplayer foi bem sucedida.
Acredito que meu erro é esperar que o Aplay reproduza arquivos MP3, quando meus "Formatos disponíveis:" mostram apenas estes:
- U8
- S16_LE
- S16_BE
- S32_LE
- S32_BE
- FLOAT_LE
- FLOAT_BE
- MU_LAW
- A_LAW
Então ffmpeg DOES WORK, e o mplayer JOGA o mp3.
No entanto, gostaria de me concentrar em obter uma resposta para o problema de declaração do avconv .
Para aqueles que querem arquivos de amostra, consulte a pasta Dropbox avconv :
sound.wav - source wav file of several piano notes & silence
avconv_output.txt - console output running avconv
avconv.mp3 - 0 byte mp3 output file
ffmpeg_output.txt - console output running ffmpeg
ffmpeg.mp3 - working ffmpeg mp3 output file
Obrigado a todos!
Acabei de atualizar para o 14.04 e encontrei o mesmo problema. Adicionar "-b 256k" corrigiu para mim (embora o MP3 resultante tenha sido gerado com uma taxa de bits de 160Kbps em vez da taxa original de 256Kbps).