我正在尝试将桌面直播到安卓平板电脑。以下是我做的
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) 使用URL在平板电脑(Android 4.3)上播放流http://x.x.x.x:8090/test"
我可以在平板电脑上看到桌面,几乎没有问题1) 视频中大约有6到8秒的延迟2) 玩家显示警告"第一帧没有关键帧"
当我在"ffserver.conf"文件中将"Format flv"更改为"Format mpegts"时,警告就消失了。但延迟仍然存在。
有没有办法减少延误?
我使用的格式正确吗?
我想为我的桌面流媒体实现最大2秒的延迟。
您在android设备上使用什么来观看视频?这个问题看起来很普通。
-
你只是把原始帧发送到接收器吗?在这种情况下,它们可能有点重,处理它们需要一些时间。看看你们是否真的可以对它们进行编码并流式传输到网络。
-
其次,它还取决于网络延迟,你的网络有多好?先在WLAN中进行尝试,然后在两个公共IP号码之间进行尝试。
-
接收器上的抖动缓冲区大小是多少?如果你有很大的抖动缓冲区,玩家会设置一些百分比限制来填充,然后才能真正开始游戏。显然,如果你有大的抖动缓冲区,它可能需要很长时间来填充,所以视频的初始延迟。因此,在测试情况下关闭抖动缓冲区。
-
我也可以责怪你的接收设备的解码能力。