i965-va-driver
我在 Surface pro 3 上安装了 Ubuntu 14.04,并安装了libva-intel-vaapi-driver
vaapi 驱动程序以利用它进行视频加速解码。然后我mplayer-vaapi
按照此链接上的建议进行了安装:
Vaapi 在 Ubuntu 13.04 中不起作用
使用vaapi
驱动程序解码和播放h264
流,mplayer 每 5 到 10 秒显示一次伪影,作为部分“绿色帧”(帧上有一条绿色条纹,高度不同,有时占帧的大部分,有时少得多)。MPlayer
日志显示消息,例如“RTP:丢失 2 个数据包”。我还注意到,启用 vaapi 后,我无法使用 libavcodec 的多线程(lavdoptsthreads=N),从论坛讨论来看,这似乎是意料之中的。在这种情况下,我还能做些什么来提高 RTP 接收和 H.264 解码速度?
我的 MPlayer 命令行:
mplayer -vo vaapi -va vaapi -benchmark -v -msglevel all=9 br60.sdp
谢谢,Harshal Patel HPC 系统工程师 Signalogic Inc.
图像显示瑕疵:
显示错误消息的图像:
问题更新:
我使用命令cat /proc/net/udp
并向我显示了结果,
sl local_address rem_address st tx_queue rx_queue tr tm->when retrnsmt uid timeout inode ref pointer drops
1235: 00000000:B000 00000000:0000 07 00000000:00000000 00:00000000 00000000 0 0 57854 2 ffff8800a5b35e00 4256
这里,丢弃数据包 = 4256
因此,每当我在 MPlayer 上看到伪影时,无论我使用 vaapi 还是多线程 x86 解码器,我都会看到丢弃数据包计数器在增加。
如何防止 Linux 网络堆栈丢帧?是否有针对此问题的 Ubuntu 驱动程序升级或补丁?
Surface 平板电脑使用 WiFi 连接到互联网,如果我将其连接到 LAN,则在播放流时不会看到任何数据包丢失或任何伪影。
那么如何才能增加平板电脑的无线吞吐量?
笔记:
我在 MPlayer 中使用 VAAPI 来实现 -vo(视频输出)和 -va(视频加速)。
答案1
我还看到 MPlayer 以 720p 流式传输到安装了 Ubuntu 14.04 的 Surface Pro 3 时出现伪影,但没有使用 vaapi,而是使用 -lavdoptsthreads=4(x86 多线程 H.264 解码)。伪影不是“绿色帧”,但看起来它以与所述类似的速率和帧位置出现。
通过关闭网络管理器,我能够获得更好的结果,如下所示:
我最初注意到这一点是因为每隔 30 秒,或者有时每隔 1 分钟或 2 分钟,整个 Surface 用户界面就会锁定几秒钟……间隔各不相同,但也不是随机的。这让我开始调查 WiFi 扫描……然后找到了网络管理器。
(如果这个答案出现两次,我深表歉意。我第一次发布它是在两 (2) 周前,但它仍然没有出现。我希望这不是由于 NetworkManager 对 RTP 视频流的影响。我意识到 Ubuntu 开发人员之间存在一些争论,关于禁用 NetworkManager 是否应该做,但请不要责怪我,我只是一个信使)。