DzenIT

HOME ZEN IT SOFT APK LIVE GAME OTHER W CONTACT SEARCH

Трансляция на ютуб с помощью ffmpeg

На днях стал вопрос трансляции потокового видео телеканала на ютуб. Хотелось задействовать минимум ресурсов при максимальной эффективности. На помощь пришла консольная программа ffmpeg.

FFmpeg не только потребляет минимум ресурсов, но и обладает мощным функционалом. Скачать её можно с официального сайта https://ffmpeg.org/ или мою версию программы под Windows здесь.

Для запуска программы перейдите в командную строку Пуск - выполнить - пишем cmd или Пуск - поиск - cmd. Должна открыться командная строка, теперь переходим в папку с нашей программой

cd c:\ffmpeg-20200812-bb59bdb-win64-static\ffmpeg-20200812-bb59bdb-win64-static\bin\

Где c:\* это расположение ffmpeg.exe

Самый простой способ запустить трансляцию на ютуб и проверить работоспособность передачи потокового видео в формате m3u8 с помощью ffmpeg

ffmpeg -i https://HLS.m3u8 -f flv rtmp://a.rtmp.youtube.com/live2/KEY

KEY - ключ трансляции, чтобы его получить нужно перейти на свой канал на ютубе, начать трансляцию, во вкладке настройка трансляции мы видим заветный ключ.

Трансляция на ютуб с помощью ffmpeg

Если хотите транслировать видео используя ffmpeg

ffmpeg -i video.mp4 -f flv rtmp://a.rtmp.youtube.com/live2/KEY

Такой способ передает картинку не самого лучшего качества, можно сказать она пиксельная даже в 720p. Это исправляется добавлением команды -vcodec libx264.

ffmpeg -i https://HLS.m3u8 -vcodec libx264 -f flv rtmp://a.rtmp.youtube.com/live2/KEY

Для сравнения взгляните на два изображения

Тут есть небольшой подвох, без параметра vcodec у меня процессор загружен на 7%, при обработке кодеком -vcodec libx264 на 40-80%. Пусть каждый выберет сам качество или потребляемый ресурс.

Некоторые потоки используют только свое программное обеспечение, поэтому мы можем задать user agent в ffmpeg

ffmpeg -user-agent "Player/0.1.8 (Linux;Android 7.1.2) PlayerLib/0.8.0" -i https://hls.m3u8 -vcodec libx264 -f flv rtmp://a.rtmp.youtube.com/live2/ключ

Можно также "поиграться" с картинкой видео, т.к. ютуб сам обжимает видео, можно выставить битрейт повыше или пониже. Вот пример битрейта в 1000k с частотой кадра 24 и ограничением буфера

ffmpeg -i HLS.m3u8 -vcodec libx264 -profile:v baseline -b:v 1000k -maxrate 1000k -bufsize 1000k -r 24 -f flv rtmp://a.rtmp.youtube.com/live2/ключ

Исходя из выше сказанного, запустить трансляцию на ютубе программой ffmpeg можно одной строкой. Её можно запустить на любом самом дешевом VDS без графического окружения и даже на телефоне, например, используя termux.