Копирование потоков быстрее
Ваш первый пример - просто копирование потоков, а затем перемещение атома moov. Такое перемещение позволяет начать воспроизведение видео до того, как оно будет полностью загружено, например, просмотрщик просматривает ваше видео через браузер.
ffmpeg -i input.mp4 -codec copy -map 0 -movflags +faststart output.mp4
Кодировка медленнее
Кодирование, как и во втором примере, может занять много времени в зависимости от нескольких факторов, включая: сложность и длительность вашего ввода, способ компиляции ваших сборок ffmpeg и x264, возраст ваших сборок (потенциальное отсутствие функций, улучшений и исправления ошибок), ваш процессор, используемый кодер и ваши настройки кодирования. Не всем этим можно управлять, но вы можете быть уверены, что используете последнюю сборку и можете изменить настройки кодирования, чтобы они лучше соответствовали вашим потребностям.
Получение FFmpeg
Статические сборки просты в использовании: просто скачайте, распакуйте и запустите. См. Страницу загрузки FFmpeg для опций для пользователей Linux, Windows и OS X. Вы также можете скомпилировать и несколько пошаговых руководств по компиляции FFmpeg .
Использование пресета
Вы можете использовать более быстрый пресет кодирования при кодировании с x264:
ffmpeg -i in.wmv -codec:v libx264 -preset fast -movflags +faststart out.mp4
Предварительная установка - это набор параметров, которые определяют эффективность кодирования и, следовательно, также влияют на скорость. Текущие пресеты: ultrafast , superfast , veryfast faster , fast , быстрый , medium , slow , slower , очень veryslow , placebo . По умолчанию medium , а placebo - пустая трата времени. Общая рекомендация - просто использовать самый медленный пресет, к которому у вас есть терпение. См. Руководство по кодированию FFmpeg и x264 для получения дополнительной информации.
Параметр -f mp4 не нужен, и в зависимости от вашей версии ffmpeg h264 может работать как имя кодировщика, поэтому принято использовать libx264 .