Sta*_*ked 5 video vlc video-streaming
编辑
我停止使用VLC并切换到GMax FLV编码器.它在IMO方面做得更好.
原帖
我将我的桌面(屏幕)作为H264视频流发送到另一台机器,使用以下命令行将其保存到文件中:
流的发件人:
vlc -I dummy
--sout='#transcode{vcodec=h264,vb=512,scale=0.5}
:rtp{mux=ts,dst=192.168.0.1,port=4444}'
Run Code Online (Sandbox Code Playgroud)
流的接收者:
vlc -I rc
rtp://@:4444
--sout='#std{access=file,mux=ps,dst=/home/user/output.mp4}'
--ipv4
Run Code Online (Sandbox Code Playgroud)
这有效,但有一些问题:
有人能指出我如何解决这些问题的正确方向吗?
编辑:我取得了一些进展.
播放的初始延迟是因为播放器正在等待关键帧.通过强制流的发送者每4秒创建一个新的关键帧,我可以减少延迟:
:screen-fps=10
--sout='#transcode{vcodec=h264,venc=x264{keyint=40},vb=512,scale=0.5}
:rtp{mux=ts,dst=192.168.0.1,port=4444}'
Run Code Online (Sandbox Code Playgroud)
然而寻求问题并没有解决,但我理解它好一点.RTP流以原始流格式保存为文件,通常不能作为常规视频文件播放.VLC设法播放此文件,但大多数其他播放器没有.所以我需要将其转换为常规视频文件.我正在调查我是否可以使用ffmpeg执行此操作,如果我为其提供记录流的SDP文件.
欢迎大家帮忙!
小智 6
更新发件人命令行:
venc=x264{scenecut=20,bframes=0}
Run Code Online (Sandbox Code Playgroud)
并且您的客户端命令行为:
vlc -I rc rtp://@:4444 --sout='#std{access=file,mux=mp4,dst=/tmp/output.mp4}' --ipv4
Run Code Online (Sandbox Code Playgroud)
应该解决你的问题.你测试过哪些球员?