我正在尝试使用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无法做到时,可以手动添加它?
还是其他一些问题?
我发现这个问题最近引起了一些关注,所以这是我到目前为止所知道的。
首先,我们需要迁移到 Gstreamer 1.x,新版本解决了很多问题。
我想到的另一件事是在解码器之前添加解析器。
此外,还有一个针对 Gstreamer 解析器/解码器的补丁(不记得了),它修复了播放流式 h264 视频的一些问题。
我希望这会对你们有所帮助。
| 归档时间: |
|
| 查看次数: |
1530 次 |
| 最近记录: |