我正在尝试将桌面直播到Android平板电脑。这就是我做的事情
1)使用ffmpeg
捕获屏幕 ffmpeg -y -f x11grab -s 800x600 -r 20 -i :0 http://x.x.x.x:8090/feed1.ffm
2)使用ffserver
流这是部分ffserver.conf文件
<Stream test>
Feed feed1.ffm
Format flv
NoAudio
VideoSize 800x600
</Stream>
3)使用网址“http://x.x.x.x:8090/test”
在平板电脑(Android 4.3)上播放视频流我能在平板电脑上看到几乎没有问题的桌面 1)视频中有大约6到8秒的延迟 2)玩家显示警告“第一帧不是关键帧”
当我在“ffserver.conf”文件中将“Format flv”更改为“Format mpegts”时,警告消失了。但延迟仍然存在。
有没有办法减少延迟?
我使用的是正确的格式吗?
我希望桌面流媒体播放延迟最多2秒。
答案 0 :(得分:0)
您在Android设备上使用什么来观看视频?这个问题看起来非常通用。
您只是将原始帧发送到接收器吗?在这种情况下,它们可能会相当沉重,需要一些时间来处理它们。看看你是否可以对它们进行实际编码并流式传输到网络。
其次,它还取决于网络延迟,您的网络有多好?首先在WLAN中尝试,然后在两个公共IP号码之间尝试。
接收器上的抖动缓冲区大小是多少?如果你有大的抖动缓冲,玩家设置一些百分比限制填充,然后才能实际踢。显然,如果你有大的抖动缓冲区,它可能需要很长时间来填充它,因此你的视频的初始延迟。因此,在测试用例中关闭抖动缓冲区。
我还可以归咎于你的接收器设备的解码功能。