Как быстро конвертировать 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.