Преобразование из WebM в MP4 в Ubuntu происходит медленно и плохо
Я использовал команду
ffmpeg -i input.webm -q:v 10 -c:a copy out.mp4
Я также попытался использовать avconv
вместо ffmpeg.
Преобразование успешное, но качество плохое. Также требуется много времени. Он также не воспроизводится с проигрывателем Windows Media. (Причина этого – mpegv1, к которому преобразован файл.) Как добавить параметр для преобразования в mpegv2?
- Изменение размера видео с помощью ffmpeg / avconv для вставки в статический размер игрока
- Преобразование AVI в H.264, который работает внутри тега видео HTML5
- Преобразование изображений в видео с использованием FFMPEG в Windows
- Конвертировать Mp4 в Mp3 с миниатюрой
- Преобразование видео с 1080p в 720p с минимальной потерей качества при использовании ffmpeg
Ниже приведен вывод командной строки:
avconv version 0.8.16-4:0.8.16-0ubuntu0.12.04.1, Copyright (c) 2000-2014 the Libav developers built on Sep 16 2014 18:33:49 with gcc 4.6.3 [matroska,webm @ 0xe737a0] Estimating duration from bitrate, this may be inaccurate Input #0, matroska,webm, from 'test.webm': Duration: 00:00:08.57, start: 0.000000, bitrate: N/A Stream #0.0: Video: vp8, yuv420p, 1536x768, PAR 1:1 DAR 2:1, 1k fps, 1k tbr, 1k tbn, 1k tbc (default) Stream #0.1: Audio: vorbis, 44100 Hz, stereo, s16 (default) [buffer @ 0xee38e0] w:1536 h:768 pixfmt:yuv420p Output #0, mp4, to 'c2.mp4': Metadata: encoder : Lavf53.21.1 Stream #0.0: Video: mpeg4, yuv420p, 1536x768 [PAR 1:1 DAR 2:1], q=2-31, 200 kb/s, 1k tbn, 1k tbc (default) Stream #0.1: Audio: libvorbis, 44100 Hz, stereo (default) Stream mapping: Stream #0:0 -> #0:0 (vp8 -> mpeg4) Stream #0:1 -> #0:1 (copy) Press ctrl-c to stop encoding frame= 8572 fps=342 q=10.0 Lsize= 90902kB time=8.56 bitrate=86984.0kbits/s dup=8438 drop=0 video:90823kB audio:0kB global headers:0kB muxing overhead 0.086778%
Несколько проблем здесь:
- Вы используете старую версию
avconv
изavconv
Ubuntu 12.04. - Эта версия не содержит кодировщик H.264 (
libx264
), скомпилированный в нее. - Вот почему вместо этого вы выбираете MPEG-4 Part II, используя кодировщик
mpeg4
. Хотя он все еще использует тот же контейнер .MP4, MPEG-4 Part II не так эффективен, как H.264. - В вашей команде используется
-q:v 10
, что довольно низкое качество. Диапазон от 1-31, где 1 – лучший, и в идеале вы хотите что-то около 2-5. - Вы не можете копировать звук Vorbis в контейнеры MP4, поэтому
-c:a copy
не будет работать.
Поэтому, чтобы исправить это, я бы рекомендовал один из двух вариантов:
- Продолжайте использовать
avconv
. Установитеapt-get install libavcodec-extra-53
на Ubuntu 12.04 иlibavcodec-extra-54
на Ubuntu 14.04, чтобы получить поддержку x264 для avconv. - Вместо этого используйте недавний
ffmpeg
. Загрузите последнюю сборку ffmpeg (нажмите ссылку Linux Static Builds ). Извлеките двоичный файлffmpeg
где-нибудь и используйте это.
Затем запустите следующую команду (и замените ffmpeg
на avconv
зависимости от вашего выбора):
ffmpeg -i input.webm -c:v libx264 -crf 20 -c:a aac -strict experimental out.mp4
CRF контролирует качество, где 18-28 – разумный выбор. Нижний – лучше, а 23 – по умолчанию. Вы можете установить битрейт звука с помощью -b:a 128k
или аналогично вашему вкусу.
Если вы хотите ускорить преобразование, вы можете использовать -preset
и установить его на один из ultrafast, superfast, veryfast, faster, fast
, ultrafast, superfast, veryfast, faster, fast
, например, -preset fast
. Обратите внимание, что установка этого параметра приведет к увеличению размера вашего файла.
Руководство по кодированию H.264 для ffmpeg очень полезно, и оно также должно применяться к avconv (но никаких гарантий по этому поводу).
Что касается MPEG-2, посмотрите на этот вопрос: Как сделать видеофайл MPEG2 с наивысшим качеством, используя FFMPEG? – и не забудьте выбрать -c:a libmp3lame
как аудио вместо этого.
Версия ffmpeg 1.2.6-7: 1.2.6-1 ~ trusty1
Ffmpeg -i one.webm -r 10 -cpu-used 5 -c: v libx264 -crf 20 -c: aac -strict experimental -loglevel error /tmp/one.mp4
Это работает очень хорошо. Конвертированное видео за 1 час через 10 минут.
Попробуйте ffmpeg -i input.webm -sameq out.mp4
В качестве альтернативы вы можете попробовать FFMC: http://www.noobslab.com/2013/04/latest-ff-multi-converter-for-ubuntu.html или предварительно скомпилированный Миро: http://www.getmiro.com / скачать / для-убунту /