使用 FFMPEG 轉碼 HD RTP/UDP 串流

使用 FFMPEG 轉碼 HD RTP/UDP 串流

我有一台 Tera STI440 串流播放器,有兩個輸入(用於電視頻道串流)。當我觀看來源串流時,看起來沒問題,但當我開始 FFMPEG 轉碼時,影像會隨機崩潰(可能大約每 5-15 秒一次)。轉碼適用於 SD 480P 串流。

ffprobe我的高清串流之一:

Input #0, rtp, from 'rtp://239.192.24.3:1234/':
  Duration: N/A, start: 18002.926656, bitrate: N/A
  Program 202 
    Metadata:
      service_name    : M5 HD
      service_provider: Magyar Televizio
    Stream #0:1: Video: h264 (High) ([27][0][0][0] / 0x001B), yuv420p(tv, bt709, top first), 1440x1080 [SAR 4:3 DAR 16:9], 25 fps, 25 tbr, 90k tbn, 50 tbc
    Stream #0:0(hun): Audio: mp2 ([3][0][0][0] / 0x0003), 48000 Hz, stereo, s16p, 128 enter code herekb/s

ffprobe我的 SD 流之一(工作正常):

Input #0, rtp, from 'rtp://239.192.24.4:1234/':
  Duration: N/A, start: 51003.435044, bitrate: N/A
  Program 203 
    Metadata:
      service_name    : RTL Klub
      service_provider: Magyar RTL Telev�zi� Zrt.
    Stream #0:0: Video: h264 (High) ([27][0][0][0] / 0x001B), yuv420p(tv, bt470bg, top first), 720x576 [SAR 12:11 DAR 15:11], 25 fps, 25 tbr, 90k tbn, 50 tbc
    Stream #0:1(hun): Audio: aac_latm (HE-AAC) ([17][0][0][0] / 0x0011), 48000 Hz, stereo, fltp

我想做一個 HLS 流,所以我運行了這個命令ffmpeg

/usr/bin/ffmpeg -loglevel 16 -i rtp://239.192.24.3:1234/ -s pal -c:v libx264 -c:a libmp3lame -b:v 1000k -b:a 96k -ar 44100 -vf 'yadif=0:-1:1' -preset:v superfast -f hls -hls_time 7 -hls_list_size 10 -hls_wrap 10 -hls_base_url http://10.3.1.3:8080/ts/ -hls_segment_filename /tvman/hls_out/ts/M5_hq_%03d /tvman/hls_out/subplaylist/M5-hq.m3u8

我從 NGINX 存取播放清單文件,但也嘗試了 Apache。 這是 FFMPEG 進程的一些日誌(日誌等級 16)

我做了一些診斷:

  • 尋找網路流量(大約 60 Mbps,因此 100 Mbps 乙太網路應該沒問題
  • CPU 和 RAM 負載正常
  • 我透過關閉串流媒體上的電視頻道串流來減少網路流量。大約是 6-7 Mbps。

如果您需要更多信息,我會為您提供。

相關內容