avconv дает ошибку в аудиопотоке

11570
sennett

Попытка преобразовать файл MKV в AVI:

 avconv -i 1.mkv ./converted/1.avi 

Получение этого вывода:

avconv version 0.8.1-4:0.8.1-0ubuntu1, Copyright (c) 2000-2011 the Libav developers built on Mar 22 2012 05:29:10 with gcc 4.6.3 [matroska,webm @ 0x8ba3aa0] Estimating duration from bitrate, this may be inaccurate Input #0, matroska,webm, from '1.mkv': Metadata: TITLE :  ARTIST :  COMPOSER :  SYNOPSIS :  DATE_RELEASED :  GENRE :  Duration: 00:07:48.54, start: 0.000000, bitrate: N/A Stream #0.0(eng): Video: h264 (Main), yuv420p, 1910x800 [PAR 1:1 DAR 191:80], 24 fps, 24 tbr, 1k tbn, 180k tbc (default) Stream #0.1: Audio: aac, 44100 Hz, stereo, s16 (default) [buffer @ 0x8dcd160] w:1910 h:800 pixfmt:yuv420p Incompatible sample format 's16' for codec 'ac3', auto-selecting format 'flt' [ac3 @ 0x8f24540] invalid bit rate Output #0, avi, to './converted/1.avi': Metadata: TITLE :  ARTIST :  COMPOSER :  SYNOPSIS :  DATE_RELEASED :  GENRE :  Stream #0.0(eng): Video: mpeg4, yuv420p, 1910x800 [PAR 1:1 DAR 191:80], q=2-31, 200 kb/s, 90k tbn, 24 tbc (default) Stream #0.1: Audio: ac3, 44100 Hz, stereo, flt, 200 kb/s (default) Stream mapping: Stream #0:0 -> #0:0 (h264 -> mpeg4) Stream #0:1 -> #0:1 (aac -> ac3) Error while opening encoder for output stream #0:1 - maybe incorrect parameters such as bit_rate, rate, width or height 

Гугл ничего не обнаружил.

4
Извините, я, должно быть, неправильно это понял. slhck 12 лет назад 0

1 ответ на вопрос

3
slhck

Прежде всего, попробуйте использовать другой кодер, а не ac3. С вашей командой вы в основном позволяете avconvрешать все самостоятельно. Хотя это может быть ошибкой (пожалуйста, отправьте отчет, если он работает в FFmpeg), вы, вероятно, можете обойти его, указав кодировщик - я бы порекомендовал MP3, если у вас есть ссылка на libav:

avconv -i 1.mkv -c:a libmp3lame ./converted/1.avi 

Вот указание на ошибку:

Несовместимый образец формата 's16' для кодека 'ac3'

Может быть, попробовать принудительную AC3 и может быть, даже задающие параметры, такие как -b:a:

avconv -i 1.mkv -c:a ac3 ./converted/1.avi 

Возможно, вы также захотите использовать правильные параметры для видеопотока, а не конвертировать (возможно, высококачественный) поток h.264 в обычный MPEG-4. Я уверен, что результат вашего обращения будет выглядеть плохо, если вы этого не сделаете.

Спасибо за ваш ответ. Получил работу с `libmp3lame`. Спасибо за хедз-ап относительно вариантов видео тоже. Где я могу прочитать больше об этом? [Документация] (http://libav.org/avconv.html) не дает большого обзора. sennett 12 лет назад 0
Я много писал об этом, также в блоге для супер-пользователей: [FFmpeg: совершенный инструмент для манипуляции с видео и аудио] (http://blog.superuser.com/2012/02/24/ffmpeg-the-ultimate-video- и аудио-манипуляция-инструмент /). Проверьте ссылки ниже в этой записи блога, чтобы найти другие ответы, которые я написал, в которых рассказывается о [использовании x264] (http://superuser.com/a/380757/48078) и настройке [хорошего качества] (http: // superuser. com / a / 383946/48078) уровень. Сделайте себе одолжение и используйте вместо него x264 (`-c: v libx264`) - качество будет намного лучше, чем при использовании базового кодера MPEG-4. Надеюсь, это поможет - дайте мне знать, если вам нужна дополнительная информация! :) slhck 12 лет назад 0
Хотя одно предупреждение: x.264 в контейнерах AVI может не всегда работать так хорошо. Попробуйте перейти на контейнеры MP4 или остаться с MKV. Если вам нужны контейнеры AVI, вы можете придерживаться MPEG-4, но затем указать уровень качества: `avconv -i 1.mkv -c: v mpeg-4 -qscale 3…`, где `qscale` может быть от 1 ( хорошо) до 31 (плохо), с нормальными значениями 2-5. slhck 12 лет назад 0
Боже мой, приятель. Большое спасибо за всю информацию. Просматривая запись в блоге сейчас. Наиболее информативно. sennett 12 лет назад 0