Страница 1 из 1

FFmpeg — конвертируем видео файлы при загрузке на сайт

Добавлено: 12 янв 2017, 21:12
porno-online.xxx
FFmpeg — конвертируем видео файлы при загрузке на сайт, установили плагин на сервак, как им пользоваться, опыта не было, подскажите сайт на DLE люди добрые помогите пожалуйста.

Добавлено: 12 янв 2017, 22:33
dedmoroz
Задача комплексная (закачать, снять с видео параметры, определить необходимость конвертирования в низшие разрешения для десктопа. Сконвертировать для мобилок. Перенести метаданные. Нарезать скриншоты, обработать их. Переместить полученные файлы на сервер, где они будут храниться, внести изменения в БД.).
Обратись к прогеру, он доставит необходимые утилиты и напишет скрипт под тебя. Разбираться самому в конфигах и профилях кодирования - легче волосы вырвать на жопе сразу.

Добавлено: 12 янв 2017, 22:38
Yastreb
porno-online.xxx, установи KVS и забудь про все эти проблемы. Можешь даже потом на дле эмбеды с него тянуть но в плане конвертации там уже опупительно сделано

Добавлено: 12 янв 2017, 22:44
dedmoroz
Пример кодирования в контейнер mp4, канал видео - h.264, аудио - mp3, выходная ширина 852пкс, высота подбирается мат.выражением д.б. кратна двум, если исходник 16:9, получишь формат hd480 - 852x480 пикс.
Битрейт задан 128к, тут на форуме где-то приводились вычисления чтобы видео не подвисало, не знаю насколько это актуально.
На офф сайте ffmpeg можно ознакомиться с профилями кодирования и пользоваться ими, они задают совокупность параметров кодирования для использования полученного видео на устройствах, где оно будет воспроизведено.

$ffmpeg_path - путь твоего ffmpeg
$raw_video_path - путь до исходника
$debug_log - путь до текстового файла если нужно посмотреть лог кодирования
$hd480_video_temp_path - путь до папки где будет находиться сконверированное видео

$config_hd480_options = "-vcodec libx264 -threads 0 -r 25 -g 50 -crf 22 -me_method hex -trellis 0 -bf 8 -acodec libvo_aacenc -ar 44100 -ab 128k -f mp4 -vf scale=852:trunc(ow/a/2)*2";

$encode_command = "$ffmpeg_path -i $raw_video_path " . $encode_options . " $hd480_video_temp_path >> $debug_log 2>&1";

exec ($encode_command);

У ffmpega могут возникнуть проблемы с кодированием аудио, тогда следует попробовать альтернативные настройки aac: -acodec libfaac заменить на strcit -2 -acodec aac либо libvo_aacenc

Добавлено: 14 янв 2017, 16:29
Sopet
dedmoroz писал(а):scale=852:trunc(ow/a/2)*2"
А почему так?
Видео ведь должно соответствовать формату по вертикали?
Я делал просто: scale=-2:720:flags=lanczos (Ланцош - это более качественный алгоритм изменения разрешения).
Или тут есть подвох?

На счёт -r 25.
Спецы хором кричат, что частоту кадров надо оставлять оригинальную, иначе получаем стробоскоп.
https://www.youtube.com/watch?v=jMhXiklZi1w
Размер файла от этого не сильно увеличится.
Однако, вопрос: как себя чувствуют старые девайсы при стриминге в 60 fps?

Добавлено: 14 янв 2017, 16:42
dedmoroz
это просто пример. во время экспериментов с настройками не попадались доноры с "правильными" аспектратио 4/3 16/9, поэтому для себя остановился именно на динамической высоте, сам на данный момент использую только хотлинк.

Добавлено: 16 янв 2017, 13:18
DON DIABLO
Sopet писал(а):Однако, вопрос: как себя чувствуют старые девайсы при стриминге в 60 fps?
зависит от того на сколько старые, наблюдается подтормаживание.

Добавлено: 16 янв 2017, 13:37
duck
Yastreb писал(а):но в плане конвертации там уже опупительно сделано
В плане конвертации там всего лишь конфиг ffmpeg вынесен в админку :)