Потоковое копирование
Когда вы звоните -c:v:1 copy
, FFmpeg возьмет существующий битовый поток видео и скопирует его в поток . Битовый поток видео просто инкапсулируется во внешний контейнер, например, WMV, AVI или MP4 - ваш реальный битовый поток видео есть msmpeg4
и останется таким.
Если вы хотите узнать больше о том, о чем я говорю, смотрите здесь: Что такое кодек (например, DivX?) И чем он отличается от формата файла (например, MPG)?
При копировании потока битов FFmpeg не нужно фактически декодировать и перекодировать реальное видео. Просто нужно объединить видеопоток в новый формат контейнера, что часто является довольно простой операцией и поэтому не занимает много времени.
кодирование
В отличие от этого, если вы вызываете -vcodec libx264
(или -c:v libx264
синтаксис, который вы должны использовать, потому что vcodec
он устарел), FFmpeg будет вынужден декодировать битовый поток видео из msmpeg4
необработанного формата, а затем передавать его в x264
кодер H.264.
x264 работает быстро, но кодирование видео все равно занимает много времени, особенно когда его содержимое 720p. И это может занять более одного часа, особенно если ваш ввод уже более одного часа. Кроме того, ваш процессор может быть не самым быстрым. Это основная причина, по которой старые кодеры MPEG-4 Visual, такие как XviD, все еще популярны: им требуется меньше времени для кодирования, чем кодекам H.264. Они могут не дать вам лучшую производительность с точки зрения качества и размера файла, но они быстры.
Это все, как говорится: вы можете ускорить кодирование x264, форсируя пресет. Пресеты представляют собой настройки оптимизации кодировщика и варьируются от: сверхбыстрый, сверхбыстрый, очень быстрый, быстрый, быстрый, средний, медленный, медленный, очень низкий. Ваша команда может выглядеть так:
ffmpeg -i input.wmv -c:v libx264 -preset ultrafast out.mp4
Он должен работать быстрее, чем без предустановки. Единственный недостаток заключается в том, что он не достигает такого же качества при тех же скоростях сжатия по сравнению, например, с -preset veryslow
.
Кроме того, вы ничего не можете сделать, кроме как инвестировать в быстрый ЦП и убедиться, что вы используете последнюю сборку FFmpeg с поддержкой x264.
Для получения дополнительной информации см. FFmpeg Wiki: Руководство по кодированию H.264 .