Я пытаюсь использовать ту же командную строку, которую использует YouTube для качества и т.д. В контейнерах H.264/MP4. Я работал над преобразованием видео в несколько форматов, масштабов, размеров и настройкой скорости передачи битов и звука в соответствии с тем, что, по словам YouTube, они используют.
В скорлупе ореха вот что я использую:
-pix_fmt yuv420p -profile:v baseline -level 3.0 -acodec libfaac -ar 44100 -ac 2 -ab 192k -aspect 16:9 -r 24000/1001 -movflags +faststart
Теперь, если я хочу уточнить, почему эти ценности такие, какие они есть. Сначала вы должны увидеть, что YouTube говорит нам самим, что они используют здесь.
- https://support.google.com/youtube/answer/1722171?hl=en
- https://sites.google.com/site/linuxencoding/x264-ffmpeg-mapping
Итак, давайте углубимся в детали
- moov atom в начале файла (быстрый запуск)
- Каналы: стерео или стерео + 5.1
- Частота дискретизации 96 кГц или 48 кГц
- Прогрессивное сканирование (без чересстрочной развертки)
- Высокий профиль
- 2 последовательных B кадра
- Закрытая Республиканская Партия GOP половины частоты кадров.
- CABAC
- Цветовая подвыборка: 4: 2: 0
- Частота кадров
- YouTube использует проигрыватели с соотношением сторон 16: 9.
- Аудиокодек: AAC-LC
В командной строке ffmpeg они становятся следующими.
-movflags +faststart
-ac 2
-ar 48000
- Не уверен, что команда для этого. (FFMPEG По умолчанию кодирование является прогрессивным.)
-profile:v high -level 4.0
-bf 2
(FFMPEG по умолчанию равен 16.)-g 12
или-g 15
зависит от FPS YouTube. (По умолчанию 12, работает для 24-25 кадров в секунду. Для NTSC и 30 кадров в секунду выберите 15.* FFMPEG option:-g
, Не уверен, что FPS по умолчанию на YouTube, если это 24 или 30. Я предполагаю 24, так как по умолчанию 12 будет половина частоты кадров и 15, если их частота кадров равна 30.)-coder 1
(по умолчанию CABAC - энтропийный кодер, используемый x264.)-pix_fmt yuv420p
(Мое мнение, что каждый должен добавить это обязательное, или, возможно, все не основанные на FFmpeg проигрыватели не поддерживают правильное декодирование YUV 4: 2: 2 или YUV 4: 4: 4. Так что юв 4: 2: 0 обязательно.)-r 24000/1001
( допустим, что частота кадров YouTube по умолчанию равна 24.)-aspect 16:9
-acodec libfaac
Но я знаю, что, возможно, есть некоторые команды, которые я пропускаю или нуждаюсь в изменении, если кто-то будет так любезен помочь. И исправь / скажи, что мне нужно изменить / добавить.
Поскольку я хочу использовать базовый профиль, я не использую CABAC, GOP или B-кадры в моей командной строке, поскольку все они становятся отключенными и неактуальными.