FFMPEG를 사용하여 HD RTP/UDP 스트림을 트랜스코딩

FFMPEG를 사용하여 HD RTP/UDP 스트림을 트랜스코딩

저는 두 개의 입력(TV 채널 스트리밍용)을 사용하는 Tera STI440 스트리머를 가지고 있습니다. 소스 스트림을 볼 때는 괜찮은 것 같지만 FFMPEG 트랜스코딩을 시작하면 이미지가 무작위로(아마 5~15초마다) 축소됩니다. SD 480P 스트림에서는 트랜스코딩이 괜찮습니다.

ffprobe내 HD 스트림 중 하나:

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).

나는 몇 가지 진단을 내렸습니다.

  • 네트워크 트래픽을 찾았습니다(약 60Mbps이므로 100Mbps 이더넷이면 괜찮을 것입니다).
  • CPU 및 RAM 부하 양호
  • 스트리머에서 TV 채널 스트림을 꺼서 네트워크 트래픽을 줄였습니다. 6~7Mbps 정도였습니다.

더 많은 정보가 필요하시면 제공해 드리겠습니다.

관련 정보