MPlayer-vaapi 在播放 H264 流时出现伪影

MPlayer-vaapi 在播放 H264 流时出现伪影

i965-va-driver我在 Surface pro 3 上安装了 Ubuntu 14.04,并安装了libva-intel-vaapi-drivervaapi 驱动程序以利用它进行视频加速解码。然后我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 解码)。伪影不是“绿色帧”,但看起来它以与所述类似的速率和帧位置出现。

通过关闭网络管理器,我能够获得更好的结果,如下所示:

我怎样才能彻底删除 NetworkManager?

我最初注意到这一点是因为每隔 30 秒,或者有时每隔 1 分钟或 2 分钟,整个 Surface 用户界面就会锁定几秒钟……间隔各不相同,但也不是随机的。这让我开始调查 WiFi 扫描……然后找到了网络管理器。

(如果这个答案出现两次,我深表歉意。我第一次发布它是在两 (2) 周前,但它仍然没有出现。我希望这不是由于 NetworkManager 对 RTP 视频流的影响。我意识到 Ubuntu 开发人员之间存在一些争论,关于禁用 NetworkManager 是否应该做,但请不要责怪我,我只是一个信使)。

相关内容