Gstreamer - vaapidecode与mpeg ts没有播放

10r*_*nho 5 video gstreamer

我正在尝试使用gstreamer-vaapi插件在mpegts中播放视频.

当建议使用vaapi时

gst-launch-0.10 -v filesrc location=video.mp4 ! qtdemux ! vaapidecode ! vaapisink
Run Code Online (Sandbox Code Playgroud)

当然,它正在发挥作用.

此外,TS播放使用

GST_DEBUG="*:3" gst-launch-0.10 -v udpsrc buffer-size="5000"   \
port=1234 multicast-group="239.0.0.17"   \
caps="application/x-rtp,media=(string)video,clock-rate=(int)90000,encoding-name=(string)H264"   \
! .recv_rtp_sink_0 gstrtpbin ! rtpmp2tdepay   \
! mpegtsdemux ! ffdec_h264 ! xvimagesink
Run Code Online (Sandbox Code Playgroud)

但是当我想要替换时ffdec_h264 ! xvimagesink,vaapidecode ! vaapisink我没有获得视频,这里是登录的GST_DEBUG=*:3.

我在这里发现了类似的问题,建议使用ffdemux_mpegts而不是tsdemux因为需要的接收器帽vaapidecode.由于之前存在一些问题,ffdemux_mpegts因此不再gstreamer-ffmpeg包装的接缝.

但无论如何我没有看到那个人那样的错误.

有什么方法可以发现vaapidecode需要什么样的帽子,并且当demuxer无法做到时,可以手动添加它?

还是其他一些问题?

10r*_*nho 0

我发现这个问题最近引起了一些关注,所以这是我到目前为止所知道的。

首先,我们需要迁移到 Gstreamer 1.x,新版本解决了很多问题。

我想到的另一件事是在解码器之前添加解析器。

此外,还有一个针对 Gstreamer 解析器/解码器的补丁(不记得了),它修复了播放流式 h264 视频的一些问题。

我希望这会对你们有所帮助。