MPlayer 無法透過 ffmpeg 播放 TCP MPEG-TS 串流中的 libopus

MPlayer 無法透過 ffmpeg 播放 TCP MPEG-TS 串流中的 libopus

我正在嘗試使用 FFMPEG 和 MPlayer 以及基於 TCP 的 MPEG-TS 串流來設定超低 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)

指定-ac libopusMPlayer 沒有幫助,只會加入編解碼器被迫使用的一行。aaclibmp3lame解碼器運作得很好,而speexMPlayer 根本不檢測音訊。

該串流也可以很好地播放ffplay(使用音訊),但它不適合我的用例,因為與 MPlayer 相比,它的延遲更高。

相關內容