Потоковая передача на несколько серверов RTMP с помощью ffmpeg с минимальными ресурсами

2697
Dustin

Используя OBS и ffmpeg, я пытаюсь транслировать на Facebook и Twitch одновременно. Моя текущая настройка работает, однако проблема в том, что она немного голодна.

FACEBOOK_KEY="123?ds=1\&s_l=1\&a=ggnore" TWITCH_KEY="live_123_aBcEdFg"  ARGS="-c:v libx264 -preset medium -maxrate 3500k -bufsize 6000k -pix_fmt yuv420p -g 50 -c:a aac -b:a 160k -ac 2 -ar 44100 -f flv"  CMD="ffmpeg -re -listen 1 -i rtmp://127.0.0.1:5555" CMD="$CMD $ARGS rtmp://live.twitch.tv/app/$TWITCH_KEY" CMD="$CMD -r 30 $ARGS rtmp://rtmp-api.facebook.com:80/rtmp/$FACEBOOK_KEY"  eval $CMD 

Настройки OBS просты:

Видео: 720p, битрейт 2500k, кодирование x264, 60FPS

Аудио: 160k AAC.

У меня есть две цели, которые я пытаюсь достичь с помощью установки.

  1. Для Twitch ffmpeg должен просто копировать исходный поток из OBS в Twitch без какого-либо преобразования, поскольку Twitch принимает то, что я передаю из OBS.
  2. Для Facebook он должен конвертировать FPS с 60 до 30, опять же с минимальным использованием ресурсов, так как Facebook принимает все поступающие из OBS, кроме FPS.
3

1 ответ на вопрос

1
LordNeckbeard
ffmpeg -listen 1 -i rtmp://127.0.0.1:5555 -c copy -f flv rtmp://twitch -c:v libx264 -preset medium -maxrate 3500k -bufsize 6000k -r 30 -pix_fmt yuv420p -g 60 -c:a aac -b:a 160k -ac 2 -ar 44100 -f flv rtmp//:facebook 
  • Не используйте -reс живыми входными потоками. Документация говорит, что это может вызвать потерю пакета.

  • Я изменился, -g 50чтобы -g 60лучше соответствовать вашим 30 кадрам в секунду.

  • См. Fifo muxer, если вы хотите добавить опции, чтобы попытаться восстановить выходные данные в случае сбоя.

Фантастика! Благодарю. Сделаете ли вы что-нибудь еще для потока Facebook, чтобы уменьшить загрузку процессора? Что-то, что ты чувствуешь, не нужно? Dustin 6 лет назад 0
@Dustin Выводит 30 кадров в секунду из OBS, а затем передает их на Facebook и Twitch без перекодирования. LordNeckbeard 6 лет назад 1

Похожие вопросы