0

我正在尝试将桌面直播到 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) 使用 URL“ http://xxxx:8090/test ”在平板电脑 (Android 4.3) 上播放流

我可以在平板电脑上看到桌面,但问题很少 1) 视频中有大约 6 到 8 秒的延迟 2) 播放器显示警告“第一帧不是关键帧”

当我在“ffserver.conf”文件中将“Format flv”更改为“Format mpegts”时,警告消失了。但是延迟仍然存在。

有没有办法减少延迟?

我使用正确的格式吗?

我想为我的桌面流实现最大 2 秒的延迟。

4

1 回答 1

0

你在安卓设备上使用什么来观看视频?这个问题看起来很笼统。

  1. 您只是将原始帧发送到接收器吗?在这种情况下,它们可能会相当重,并且需要一些时间来处理它们。看看您是否可以真正对它们进行编码并流式传输到网络。

  2. 其次,这也取决于网络延迟,你的网络有多好?先在 WLAN 中尝试,然后在两个公共 IP 号之间尝试。

  3. 接收器的抖动缓冲区大小是多少?如果您有较大的抖动缓冲区,玩家会设置一些百分比限制来填充,然后才能真正开始播放。显然,如果您有较大的抖动缓冲区,则可能需要很长时间才能填充它,因此您的视频会出现初始延迟。因此,在测试用例中关闭抖动缓冲区。

  4. 我也可以责怪您的接收器设备的解码能力。

于 2013-08-25T09:13:24.637 回答