![无法播放本地 RTP 流](https://linux22.com/image/1614580/%E6%97%A0%E6%B3%95%E6%92%AD%E6%94%BE%E6%9C%AC%E5%9C%B0%20RTP%20%E6%B5%81.png)
我已经努力解决这个问题一段时间了,但进展不错。我现在使用以下 VLC 命令行参数运行 4k 传输流:
vlc --ffmpeg-hw --avcodec-hw=any dshow:// :dshow-vdev="Video (00 Pro Capture HDMI 4K+)" :dshow-adev="Audio (2- 00 Pro Capture HDMI 4K+)" :dshow-threads=8 :dshow-aspect-ratio=16\:9 :dshow-size="3840x2160" :dshow-pixel_format=yuv444p16le :dshow-tune=film :dshow-preset=lossless :dshow-profile=main10 show-vcodec=hevc_nvenc :dshow-fps=50 :dshow-crf=0 :dshow-acodec=mp4a :dshow-stereo-mode=5 :dshow-force-surround-sound=0 :dshow-ab=128 :dshow-samplerate=44100 :no-dshow-config :live-caching=3000 --sout "#transcode{venc=ffmpeg,vcodec=mpgv,threads=8,aspect=16:9,width=3840,height=2160,fps=50,acodec=a52,ab=1500,channels=6,samplerate=48000,soverlay}:rtp{dst=239.255.0.1,port=5004,mux=ts}"
我可以通过以下方式在运行流的同一台 PC 上访问 rtp 流:
vlc -vvv rtp://@239.255.0.1:5004
但是,如果我在另一台通过以太网连接到同一网络的计算机上尝试相同的命令,客户端 VLC 会话就会挂起。我已将详细程度设置为调试,并将日志包含在下方。有人能从中找出任何提示流无法播放的原因吗?
-- logger module started --
main debug: VLC media player - 3.0.8 Vetinari
main debug: Copyright © 1996-2019 the VideoLAN team
main debug: revision 3.0.8-0-gf350b6b5a7
main debug: configured with ../extras/package/win32/../../../configure '--enable-update-check' '--enable-lua' '--enable-faad' '--enable-flac' '--enable-theora' '--enable-avcodec' '--enable-merge-ffmpeg' '--enable-dca' '--enable-mpc' '--enable-libass' '--enable-schroedinger' '--enable-realrtsp' '--enable-live555' '--enable-dvdread' '--enable-shout' '--enable-goom' '--enable-caca' '--enable-qt' '--enable-skins2' '--enable-sse' '--enable-mmx' '--enable-libcddb' '--enable-zvbi' '--disable-telx' '--enable-nls' '--host=x86_64-w64-mingw32' '--with-breakpad=https://win.crashes.videolan.org' 'host_alias=x86_64-w64-mingw32' 'PKG_CONFIG_LIBDIR=/home/jenkins/workspace/vlc-release/windows/vlc-release-win32-x64/contrib/x86_64-w64-mingw32/lib/pkgconfig'
main debug: using multimedia timers as clock source
main debug: min period: 1 ms, max period: 1000000 ms
main debug: searching plug-in modules
main debug: loading plugins cache file D:\VLC\plugins\plugins.dat
main debug: recursively browsing `D:\VLC\plugins'
main error: stale plugins cache: modified D:\VLC\plugins\access\libaccess_concat_plugin.dll
main error: stale plugins cache: modified D:\VLC\plugins\access\libaccess_imem_plugin.dll
....
....
....
main error: stale plugins cache: modified D:\VLC\plugins\visualization\libgoom_plugin.dll
main error: stale plugins cache: modified D:\VLC\plugins\visualization\libprojectm_plugin.dll
main error: stale plugins cache: modified D:\VLC\plugins\visualization\libvisual_plugin.dll
main debug: plug-ins loaded: 494 modules
main debug: opening config file (C:\Users\cg371\AppData\Roaming\vlc\vlcrc)
main debug: looking for logger module matching "any": 2 candidates
file debug: opening logfile `D:\VLC\Log.txt'
main debug: using logger module "file"
main debug: translation test: code is "en_GB"
main debug: looking for keystore module matching "memory": 3 candidates
main debug: using keystore module "memory"
main debug: CPU has capabilities MMX MMXEXT SSE SSE2 SSE3 SSSE3 SSE4.1 SSE4.2 FPU
main debug: Creating an input for 'Media Library'
main debug: Input is a meta file: disabling unneeded options
main debug: using timeshift granularity of 50 MiB
main debug: using timeshift path: C:\Users\cg371\AppData\Local\Temp
main debug: `file/directory:///C:/Users/cg371/AppData/Roaming/vlc/ml.xspf' gives access `file' demux `directory' path `/C:/Users/cg371/AppData/Roaming/vlc/ml.xspf'
main debug: creating demux: access='file' demux='directory' location='/C:/Users/cg371/AppData/Roaming/vlc/ml.xspf' file='C:\Users\cg371\AppData\Roaming\vlc\ml.xspf'
main debug: looking for access_demux module matching "file": 15 candidates
main debug: no access_demux modules matched
main debug: creating access: file:///C:/Users/cg371/AppData/Roaming/vlc/ml.xspf
main debug: (path: C:\Users\cg371\AppData\Roaming\vlc\ml.xspf)
main debug: looking for access module matching "file": 26 candidates
main debug: using access module "filesystem"
main debug: looking for stream_filter module matching "prefetch,cache_read": 24 candidates
cache_read debug: Using stream method for AStream*
cache_read debug: starting pre-buffering
cache_read debug: received first data after 1 ms
cache_read debug: pre-buffering done 304 bytes in 0s - 296 KiB/s
main debug: using stream_filter module "cache_read"
main debug: looking for stream_filter module matching "any": 24 candidates
playlist debug: using XSPF playlist reader
main debug: using stream_filter module "playlist"
main debug: stream filter added to 00000266f6927700
main debug: looking for stream_filter module matching "any": 24 candidates
main debug: no stream_filter modules matched
main debug: looking for stream_directory module matching "any": 1 candidates
main debug: no stream_directory modules matched
main debug: attachment of directory-extractor failed for file:///C:/Users/cg371/AppData/Roaming/vlc/ml.xspf
main debug: looking for stream_filter module matching "record": 24 candidates
main debug: using stream_filter module "record"
main debug: creating demux: access='file' demux='directory' location='/C:/Users/cg371/AppData/Roaming/vlc/ml.xspf' file='C:\Users\cg371\AppData\Roaming\vlc\ml.xspf'
main debug: looking for demux module matching "directory": 55 candidates
main debug: using demux module "directory"
main debug: looking for meta reader module matching "any": 2 candidates
lua debug: Trying Lua scripts in C:\Users\cg371\AppData\Roaming\vlc\lua\meta\reader
lua debug: Trying Lua scripts in D:\VLC\lua\meta\reader
lua debug: Trying Lua playlist script D:\VLC\lua\meta\reader\filename.luac
main debug: no meta reader modules matched
main debug: `file/directory:///C:/Users/cg371/AppData/Roaming/vlc/ml.xspf' successfully opened
main debug: looking for xml reader module matching "any": 1 candidates
main debug: using xml reader module "xml"
main debug: EOF reached
main debug: removing module "directory"
main debug: removing module "record"
main debug: removing module "playlist"
main debug: removing module "cache_read"
main debug: removing module "filesystem"
main debug: creating audio output
main debug: looking for audio output module matching "any": 6 candidates
mmdevice debug: using default device
mmdevice debug: display name changed: VLC media player (LibVLC 3.0.8)
mmdevice debug: version 2 session control unavailable
mmdevice debug: volume from -65.250000 dB to +0.000000 dB with 0.031250 dB increments
main debug: using audio output module "mmdevice"
main debug: keeping audio output
main debug: looking for interface module matching "hotkeys,none": 16 candidates
main debug: using interface module "hotkeys"
main debug: looking for interface module matching "globalhotkeys,none": 16 candidates
main debug: using interface module "win32"
main: Running vlc with the default interface. Use 'cvlc' to use vlc without interface.
main debug: looking for interface module matching "any": 16 candidates
main debug: looking for extension module matching "any": 1 candidates
lua debug: Opening Lua Extension module
lua debug: Trying Lua scripts in C:\Users\cg371\AppData\Roaming\vlc\lua\extensions
lua debug: Trying Lua scripts in D:\VLC\lua\extensions
lua debug: Trying Lua playlist script D:\VLC\lua\extensions\VLSub.luac
lua debug: Scanning Lua script D:\VLC\lua\extensions\VLSub.luac
lua debug: Script D:\VLC\lua\extensions\VLSub.luac has the following capability flags: 0x5
main debug: using extension module "lua"
main debug: using interface module "qt"
main debug: processing request item: null, node: Playlist, skip: 0
main debug: rebuilding array of current - root Playlist
main debug: rebuild done - 1 items, index -1
main debug: starting playback of new item
main debug: resyncing on rtp://239.255.0.1:5004
main debug: rtp://239.255.0.1:5004 is at 0
main debug: creating new input thread
main debug: Creating an input for 'rtp://239.255.0.1:5004'
main debug: requesting art for new input thread
main debug: using timeshift granularity of 50 MiB
main debug: using timeshift path: C:\Users\cg371\AppData\Local\Temp
main debug: `rtp://@239.255.0.1:5004' gives access `rtp' demux `any' path `@239.255.0.1:5004'
main debug: creating demux: access='rtp' demux='any' location='@239.255.0.1:5004' file='\\@239.255.0.1:5004'
main debug: looking for access_demux module matching "rtp": 15 candidates
main debug: net: opening 239.255.0.1 datagram port 5004
qt debug: IM: Setting an input
main debug: looking for meta fetcher module matching "any": 1 candidates
lua debug: Trying Lua scripts in C:\Users\cg371\AppData\Roaming\vlc\lua\meta\fetcher
lua debug: Trying Lua scripts in D:\VLC\lua\meta\fetcher
main debug: no meta fetcher modules matched
main debug: looking for art finder module matching "any": 2 candidates
lua debug: Trying Lua scripts in C:\Users\cg371\AppData\Roaming\vlc\lua\meta\art
lua debug: Trying Lua scripts in D:\VLC\lua\meta\art
lua debug: Trying Lua playlist script D:\VLC\lua\meta\art\00_musicbrainz.luac
lua debug: skipping script (unmatched scope) D:\VLC\lua\meta\art\00_musicbrainz.luac
lua debug: Trying Lua playlist script D:\VLC\lua\meta\art\01_googleimage.luac
lua debug: skipping script (unmatched scope) D:\VLC\lua\meta\art\01_googleimage.luac
lua debug: Trying Lua playlist script D:\VLC\lua\meta\art\02_frenchtv.luac
lua debug: skipping script (unmatched scope) D:\VLC\lua\meta\art\02_frenchtv.luac
lua debug: Trying Lua playlist script D:\VLC\lua\meta\art\03_lastfm.luac
main debug: using access_demux module "rtp"
main debug: looking for meta reader module matching "any": 2 candidates
lua debug: Trying Lua scripts in C:\Users\cg371\AppData\Roaming\vlc\lua\meta\reader
lua debug: Trying Lua scripts in D:\VLC\lua\meta\reader
lua debug: Trying Lua playlist script D:\VLC\lua\meta\reader\filename.luac
lua debug: skipping script (unmatched scope) D:\VLC\lua\meta\art\03_lastfm.luac
main debug: no art finder modules matched
main debug: no meta reader modules matched
main debug: `rtp://@239.255.0.1:5004' successfully opened
main debug: looking for meta fetcher module matching "any": 1 candidates
lua debug: Trying Lua scripts in C:\Users\cg371\AppData\Roaming\vlc\lua\meta\fetcher
lua debug: Trying Lua scripts in D:\VLC\lua\meta\fetcher
main debug: no meta fetcher modules matched
main debug: looking for art finder module matching "any": 2 candidates
lua debug: Trying Lua scripts in C:\Users\cg371\AppData\Roaming\vlc\lua\meta\art
lua debug: Trying Lua scripts in D:\VLC\lua\meta\art
lua debug: Trying Lua playlist script D:\VLC\lua\meta\art\00_musicbrainz.luac
lua debug: Trying Lua playlist script D:\VLC\lua\meta\art\01_googleimage.luac
lua debug: Trying Lua playlist script D:\VLC\lua\meta\art\02_frenchtv.luac
lua debug: Trying Lua playlist script D:\VLC\lua\meta\art\03_lastfm.luac
main debug: no art finder modules matched
main debug: exiting
main debug: exiting
main debug: no exit handler
main debug: removing all interfaces
main debug: removing module "qt"
main debug: deactivating the playlist
main debug: incoming request - stopping current input
main debug: removing module "rtp"
main debug: dead input
main debug: nothing to play
main debug: removing module "mmdevice"
qt debug: requesting exit...
qt debug: waiting for UI thread...
qt debug: IM: Deleting the input
qt debug: QApp exec() finished
qt debug: Video is not needed anymore
qt debug: Killing extension dialog provider
qt debug: ExtensionsDialogProvider is quitting...
main debug: removing module "lua"
main debug: removing module "win32"
main debug: removing module "hotkeys"
main debug: destroying
main debug: saving media library to file C:\Users\cg371\AppData\Roaming\vlc\ml.xspf.tmp14968
main debug: looking for playlist export module matching "export-xspf": 4 candidates
main debug: using playlist export module "export"
main debug: removing module "export"
main debug: deleting item `Media Library'
main debug: deleting item `rtp://239.255.0.1:5004'
main debug: deleting item `Playlist'
main debug: removing module "memory"
-- logger module stopped --
答案1
您正在尝试推出 UDP 多播数据包。它看起来像是在 Windows 操作系统上运行?请确保发送和接收框上的 NIC 都安装了“可靠多播协议”。另外,这两台机器是否是双宿主的?如果是这样,您可以通过暂时禁用不需要的 Nic 进行测试。如果可行,那么解决方法是添加路由表条目以强制多播 IP 地址超过所需的 IP 地址。