如何使用';搜索';和';变速&x27;GStreamer的功能?

如何使用';搜索';和';变速&x27;GStreamer的功能?,gstreamer,Gstreamer,我用了几天Gstreamer1。在教程中,我编写了一个C应用程序,用以下命令播放文件: 播放/暂停,带gst\u元素\u设置\u状态() 文本覆盖,带有g_对象_集() 使用gst_元素_seek()更改速度和搜索 gst\u元素\u查找(数据->管道,数据->速率,gst\u格式\u时间,gst\u查找标志\u刷新,gst\u查找类型\u集,数据->新POS,gst\u查找类型\u集,gst\u时钟\u时间\u无) 它适用于本地显示。管道看起来像: gst-launch-1.0 files

我用了几天Gstreamer1。在教程中,我编写了一个C应用程序,用以下命令播放文件:

  • 播放/暂停,带gst\u元素\u设置\u状态()
  • 文本覆盖,带有g_对象_集()
  • 使用gst_元素_seek()更改速度和搜索
gst\u元素\u查找(数据->管道,数据->速率,gst\u格式\u时间,gst\u查找标志\u刷新,gst\u查找类型\u集,数据->新POS,gst\u查找类型\u集,gst\u时钟\u时间\u无)

它适用于本地显示。管道看起来像:

gst-launch-1.0 filesrc location="/myfile.ts" ! decodebin ! videoconvert ! textoverlay ! tee name="local" 
! queue ! videoconvert ! autovideosink  local. 
! queue ! x264enc biterate=10000 tune=zerolatency byte-stream=true ! h264parse config-interval=1 
! mpegtsmux ! rndbuffersize max=1316 min=1316 ! udpsink host=192.168.1.255 port=5000 async=false
filesrc location=“/myfile.ts”!德克宾!视频转换!文本覆盖!自动视频接收器

现在,我想通过本地网络广播流,使用h264/mpeg2 ts(这是一项要求),使用VLC在其他PC上复制autovideosink

我找到了一个减少延迟的示例()。我的新管道看起来像:

gst-launch-1.0 filesrc location="/myfile.ts" ! decodebin ! videoconvert ! textoverlay ! tee name="local" 
! queue ! videoconvert ! autovideosink  local. 
! queue ! x264enc biterate=10000 tune=zerolatency byte-stream=true ! h264parse config-interval=1 
! mpegtsmux ! rndbuffersize max=1316 min=1316 ! udpsink host=192.168.1.255 port=5000 async=false
播放、暂停、文本覆盖都可以。但是,寻道和速度变化不起作用:VLC冻结

通过Wireshark,我看到帧到达了远处的PC上,但它们似乎与搜索之前有所不同

例如,在wikipedia()的帮助下,我发现不再有PMT或PAT框架。作为一名视频初学者,我很难对画面进行详细分析


我假设gst\u element\u seek()会阻止流中的某些内容,但我找不到解决方法。

gstreamer udpsrc…
接收器播放流吗?与问题无关:“比特率”,而不是“比特率”。我尝试了一个非常简单的管道(gst-launch-1.0 updsrc port=5000!decodebin!videoautosink)。这与VLC相同。