
TCP를 통한 MPEG-TS 스트림과 함께 FFMPEG 및 MPlayer를 사용하여 초저 p2p 스트리밍을 설정하려고 합니다. 코덱으로 인해 aac
눈에 띄는 추가 지연 시간이 발생하므로 대신 사용하고 싶습니다 libopus
. 그렇게 하면 MPlayer가 이상하게 동작하고 오디오 재생을 거부하는 동시에 스트림에서 올바른 코덱을 감지하는 것처럼 보입니다.
내가 사용하는 ffmpeg 명령은 다음과 같습니다.
ffmpeg -f x11grab -s 1920x1080 -framerate 60 -i :0.0 -f pulse -ac 2 -i Virtual1.monitor -c:v h264_nvenc -preset llhq -b:v 8000k -profile:v high -rc:v cbr_ld_hq -c:a libopus -b:a 224k -ar 48000 -f mpegts tcp://127.0.0.1:2000
MPlayer와 그 출력은 다음과 같습니다.
v@v-home:~$ mplayer -benchmark -demuxer lavf ffmpeg://tcp://127.0.0.1:2000?listen
MPlayer 1.3.0 (Debian), built with gcc-9 (C) 2000-2016 MPlayer Team
do_connect: could not connect to socket
connect: No such file or directory
Failed to open LIRC support. You will not be able to use your remote control.
Playing ffmpeg://tcp://127.0.0.1:2000?listen.
libavformat version 58.29.100 (external)
libavformat file format detected.
[lavf] stream 0: video (h264), -vid 0
[lavf] stream 1: audio (opus), -aid 0
LAVF: Program 1
VIDEO: [H264] 1920x1080 0bpp 60.000 fps 0.0 kbps ( 0.0 kbyte/s)
==========================================================================
Opening video decoder: [ffmpeg] FFmpeg's libavcodec codec family
libavcodec version 58.54.100 (external)
Selected video codec: [ffh264] vfm: ffmpeg (FFmpeg H.264)
==========================================================================
==========================================================================
Cannot find codec for audio format 0x7375704F.
Audio: no sound
Starting playback...
Movie-Aspect is 1.78:1 - prescaling to correct movie aspect.
VO: [vdpau] 1920x1080 => 1920x1080 Planar YV12
V: 32.1 0/ 0 22% 7% 0.0% 0 0
MPlayer interrupted by signal 2 in module: video_read_frame
V: 32.1 0/ 0 22% 7% 0.0% 0 0
Exiting... (Quit)
MPlayer에 지정하면 -ac libopus
도움이 되지 않고 코덱이 강제로 사용하도록 된 줄만 추가됩니다. MPlayer에서는 오디오를 전혀 감지하지 못하는 동안 aac
코덱 libmp3lame
은 잘 작동합니다 .speex
이 스트림은 (오디오 포함) 잘 재생될 수도 있지만 ffplay
MPlayer에 비해 지연 시간이 길어서 내 사용 사례에는 적합하지 않습니다.