ianbu@visionfive2:~$ GST_DEBUG_DUMP_DOT_DIR=. gst-launch-1.0 uridecodebin uri=file:///home/bianbu/mp4/1080p/C079_1080P_AVC_AAC_8M_24F.mp4 streamsynchronizer name=decodebin decodebin. ! audioconvert ! streamsynchronizer name=sync sync. ! autoaudiosink decodebin. ! videoconvert ! glupload ! glcolorconvert ! gtkglsink 设置暂停管道 ... 管道正在 PREROLLING ... 从组件“gtkglsink0”获取上下文:gst.gl.GLDisplay=context, gst.gl.GLDisplay=(GstGLDisplay)"\(GstGLDisplayWayland\)\ gldisplaywayland0"; 错误:来自组件 /GstPipeline:pipeline0/GstURIDecodeBin:uridecodebin0/GstDecodeBin:decodebin0/GstQTDemux:qtdemux0:Internal data stream error. 额外的调试信息: ../gst/isomp4/qtdemux.c(6749): gst_qtdemux_loop (): /GstPipeline:pipeline0/GstURIDecodeBin:uridecodebin0/GstDecodeBin:decodebin0/GstQTDemux:qtdemux0: streaming stopped, reason not-linked (-1) 错误: 管道不需要 preroll. 设置 NULL 管道 ... 请问,如何才能使得uridecodebin 解码后的音频,视频数据,使用streamsynchronizer 元素进行同步
时间: 2024-01-28 17:05:22 浏览: 377
要将uridecodebin解码后的音频和视频数据使用streamsynchronizer元素进行同步,你可以按照以下步骤操作:
1. 将uridecodebin元素的名称改为decodebin,并将其输出连接到streamsynchronizer元素的输入。
```shell
uridecodebin uri=file:///home/bianbu/mp4/1080p/C079_1080P_AVC_AAC_8M_24F.mp4 name=decodebin decodebin. ! streamsynchronizer name=sync
```
2. 将decodebin元素的音频分支连接到audioconvert元素,然后再连接到streamsynchronizer元素。
```shell
decodebin. ! audioconvert ! sync.sink_0
```
3. 将decodebin元素的视频分支连接到videoconvert元素,然后再连接到streamsynchronizer元素。
```shell
decodebin. ! videoconvert ! sync.sink_1
```
这样,uridecodebin解码后的音频和视频数据就会被streamsynchronizer元素同步处理。你可以根据需要添加其他元素来处理音频和视频数据。记得在管道中添加适当的输出元素,以便查看或保存处理后的数据。
阅读全文