Старые браузеры часто не понимают сложные профили сжатия, поэтому видео нужно кодировать в профиль Baseline или Main и обязательно с пиксельным форматом yuv420p (чтобы видео не «зеленело» и не искажалось на старых устройствах).
Код: Выделить всё
ffmpeg -i input.mov -c:v libx264 -profile:v main -level 3.0 -pix_fmt yuv420p -preset medium -crf 23 -c:a aac -b:a 128k -movflags +faststart output.mp4
Код: Выделить всё
ffmpeg -err_detect ignore_err -i input.mp4 \
-map_metadata -1 -map_chapters -1 -avoid_negative_ts make_zero \
-c:v libx264 -profile:v high -level 4.0 -pix_fmt yuv420p -r 30 \
-preset medium -crf 23 \
-c:a aac -b:a 128k -ar 44100 -ac 2 \
-brand mp42 \
-movflags +faststart \
output.mp4
-err_detect ignore_err — заставляет FFmpeg игнорировать ошибки и битые участки в исходнике на этапе чтения.
-ar 44100 -ac 2 — принудительно задает стандартную частоту звука (44.1 кГц) и стерео-режим. Ошибки декодирования AAC исчезнут, так как аудио сгенерируется «с чистого листа».
Убран параметр -level 3.1, который ломал Full HD.
Установлен -profile:v high — это стандарт де-факто для современного веб-видео в разрешении 1080p, поддерживаемый абсолютно всеми актуальными браузерами и версиями Vivaldi/Chromium.
-brand mp42 — важнейший флаг. Он меняет сигнатуру контейнера с общего isom на стандартный mp42, благодаря чему браузерный плеер сразу понимает, что файл полностью оптимизирован под HTML5-стриминг, а не является сырым дампом с камеры.
-level 4.0 — стандарт для Full HD (1920x1080), который гарантирует, что декодер браузера не заблокирует видеопоток по соображениям безопасности профиля.
-g 60 -keyint_min 60 — жестко задает ключевой кадр ровно каждые 2 секунды (при 30 кадрах в секунду). Браузеру больше не нужно ждать ключевой кадр — видео начнет отрисовываться мгновенно.
-bf 0 — полностью отключает B-кадры (промежуточные кадры). Некоторые аппаратные декодеры в Linux/Chromium сбоят при обработке B-фреймов из файлов, созданных сторонним софтом. Профиль Main без B-фреймов гарантирует 100% стабильность отображения.
-profile:v main — золотой стандарт совместимости для веб-видео в разрешении 1080p.
Код: Выделить всё
ffmpeg -i Osnovy_konfigurirovaniya_pul_ta_S2000M_v_Pprog_dd3f4b5b8e63487ed4901d3ed9d03750.mp4 \
-c:v libx264 -profile:v main -level 4.0 -pix_fmt yuv420p \
-r 30 -g 60 -keyint_min 60 -bf 0 \
-preset fast -crf 23 \
-c:a aac -b:a 128k -ar 44100 -ac 2 \
-movflags +faststart \
Osnovy_konfigurirovaniya_pul_ta_S2000M_v_Pprog_dd3f4b5b8e63487ed4901d3ed9d03750.web.mp4