Как быстро конвертировать mp4 в webm используя ffmpeg?

Извините, что беспокою вас, но у меня неприятности. Мне нужно конвертировать 76 файлов mp4 в webm для веб-сайта, который использует HTML5-видео. Я говорю о 10 ГБ файлов mp4... Я знаю, что могу просто попросить ffmpeg сделать это, используя:

ffmpeg -i input_file.mp4 output_file.webm

Конечно, я сделаю это рекурсивно:

find ./ -name '*.mp4' -exec bash -c 'ffmpeg -i "$0" "${0%%.mp4}.webm"' {} \;

Я даже попробовал кое-что, что я нашел где-то в Интернете:

ffmpeg -i input_file.mp4 -cpu-used 4 -threads 8 output_file.webm

Но дело в том, что это не займет у меня меньше недели!!! Что я делаю неправильно? Есть ли возможный способ ускорить это? Если я перейду в ogg, получу ли я скорость? Пожалуйста помоги!!!

2 ответа

Удвоить или сократить вдвое? Так что это тупик... Я не буду играть с битрейтами, я никогда не знаю, чего ожидать от качества или размера... Думаю, я буду придерживаться этого и заставлять клиента держаться, пока не закончится конвертация...

find ./ -name '*.mp4' -exec bash -c 'ffmpeg -i "$0" -vcodec libvpx -acodec libvorbis -cpu-used 5 -threads 8 "${0%%.mp4}.webm"' {} \;

Я публикую это для будущих пользователей, на самом деле я набрал скорость, но мой процессор работает как ад: от 60 до 80% на каждое ядро! Теперь я думаю, что это займет меньше времени: 3 дня вместо 6 или 7.. Надеюсь, это не сломается.. ^_^

Спасибо, мужчина, в любом случае!

Изменить: Убрал переключатель -sameq после комментариев от LordNeckbeard и neon_overload -sameq не означает то же самое "качество"

Транскодирование видео занимает время. Также требуется гораздо больше знаний о параметрах кодирования; Значения по умолчанию для ffmpeg вряд ли подойдут вам и могут даже не создать пригодный для использования выходной файл.

Вот начало:

http://blog.pcode.nl/2010/10/17/encoding-webm-using-ffmpeg/

Эти настройки будут кодировать до определенного среднего битрейта (битрейт видео 3900 кбит), поэтому в битрейте будут скачки.

MP4 и WebM используют разные видеокодеки, поэтому кратчайшего пути нет; видео должно быть перекодировано.

Конечно, скорость кодирования будет сильно отличаться в зависимости от размера кадра, частоты кадров и настроек качества. Для кодирования 720p вы можете рассчитывать на кодирование примерно 1:1 (т.е. 10 часов видео за 10 часов) на процессоре за последние пару лет. Если вы выполняете двухпроходное кодирование ABR, как в примере, приведенном в ссылке, почти вдвое больше.

Я использую optimizeVideo, которое автоматически определяет настройки преобразования, которые имеют лучший баланс скорости и качества согласно Google.

https://i.imgur.com/JAT0olU.png

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