MPlayer는 ffmpeg를 통해 TCP MPEG-TS 스트림에서 libopus를 재생하지 않습니다.

MPlayer는 ffmpeg를 통해 TCP MPEG-TS 스트림에서 libopus를 재생하지 않습니다.

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

이 스트림은 (오디오 포함) 잘 재생될 수도 있지만 ffplayMPlayer에 비해 지연 시간이 길어서 내 사용 사례에는 적합하지 않습니다.

관련 정보