Ошибка утверждения avconv mpah.frame_size при попытке конвертировать WAV в MP3 в версии 14.04 [закрыто]

Моя цель - конвертировать WAV файл в MP3 14.04 (64-бит).

Файл wav имеет вид «16-битный Little Endian со знаком, частота 16000 Гц, моно» и хорошо известен. Он отлично работает с aplay , также успешно конвертируется с ffmpeg в OS X.

Благодаря этот пост , я узнал, что ffmpeg не является частью стандартного репозитория 14.04, и что avconv - это замена.

Я установил это с помощью sudo apt-get install libav-tools

Вот ошибка aconv при попытке конвертировать wav в 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)

Как я могу это исправить? Или это ошибка, которая должна регистрироваться?

Не исключено, что на коробке есть несовместимость из-за других пакетов, ранее установленных в попытках заставить pyaudio работать. Вот что создал файл wav.

Есть ли другая информация, необходимая для диагностики этого?

P.S. Прежде чем я узнал об avconv сегодня утром, мне удалось загрузить предварительно созданную версию ffmpeg (как tarball, а не как устанавливаемый пакет). Однако преобразованный файл оказался никуда не годным и звучал как действительно громкий «белый шум». Я включаю вывод консоли из ffpmeg ниже, на случай, если это даст какие-либо дополнительные подсказки.

Пожалуйста, знайте, что я предпочитаю решить эту проблему с помощью avconv, так как это поддерживаемый инструмент продвижения вперед.

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%

========

ОБНОВЛЕНИЕ 8 июня 2014 г .:

Обнаружено, что ffmpeg в конце концов работает нормально. Предложение Aquarius Power использовать mplayer было успешным.

Я считаю, что моя ошибка состоит в том, что я ожидал, что aplay будет воспроизводить файлы MP3, когда мои «Доступные форматы:» показывают только эти:

- U8
- S16_LE
- S16_BE
- S32_LE
- S32_BE
- FLOAT_LE
- FLOAT_BE
- MU_LAW
- A_LAW

Итак, ffmpeg ДЕЙСТВИТЕЛЬНО РАБОТАЕТ, а mplayer ВОСПРОИЗВОДИТ MP3.

Однако я хотел бы сосредоточиться на получении ответа на проблему avconv assert .

Для тех, кому нужны образцы файлов, см. Папку 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 

Всем спасибо!

2
задан 13 April 2017 в 15:24

1 ответ

Я просто обновил до 14,04 и столкнулся с той же проблемой. Добавление "-b 256k" зафиксировало его для меня (хотя получающийся MP3 был сгенерирован со скоростью передачи на 160 Кбит/с, а не исходным 256Kbps уровнем).

0
ответ дан 13 April 2017 в 15:24

Другие вопросы по тегам:

Похожие вопросы: