在测试阶段,一般是使用gst-launch命令的形式来实现对一些媒体流的播放。
但如果不想使用脚本的形式实现自己项目的应用,比如C/C++代码的形式,并且要嵌入到你的QT里面,这时候需要使用C代码的形式进行编程。
本章先一起讨论和分享基于C的gsteamer coding。另外会有章节讲述如何基于QT来实现Gstreamer的播放器。
我们先看看命令行的实现:
gst-launch filesrc location=/home/cbh/Desktop/mlkg.mp3 ! mad
! audioconvert ! audioresample ! autoaudiosink -vvv
mad0.GstPad:src: caps = audio/x-raw-int, endianness=(int)1234, signed=(boolean)true, width=(int)32, depth=(int)32, rate=(int)44100, channels=(int)2
audioconvert0.GstPad:src: caps = audio/x-raw-int, endianness=(int)1234, signed=(boolean)true, width=(int)32, depth=(int)32, rate=(int)44100, channels=(int)2
audioconvert0.GstPad:sink: caps = audio/x-raw-int, endianness=(int)1234, signed=(boolean)true, width=(int)32, depth=(int)32, rate=(int)44100, channels=(int)2
audioresample0.GstPad:src: caps = audio/x-raw-int, endianness=(int)1234, signed=(boolean)true, width=(int)32, depth=(int)32, rate=(int)44100, channels=(int)2
audioresample0.GstPad:sink: caps = audio/x-raw-int, endianness=(int)1234, signed=(boolean)true, width=(int)32, depth=(int)32, rate=(int)44100, channels=(int)2
autoaudiosink0/GstPulseSink:autoaudiosink0-actual-sink-pulse.GstPad:sink: caps = audio/x-raw-int, endianness=(int)1234, signed=(boolean)true, width=(int)32, depth=(int)32, rate=(int)44100, channels=(int)2
autoaudiosink0.GstGhostPad:sink: caps = audio/x-raw-int, endianness=(int)1234, signed=(boolean)true, width=(int)32, depth=(int)32, rate=(int)44100, channels=(int)2
autoaudiosink0.GstGhostPad:sink.GstProxyPad:proxypad0: caps = audio/x-raw-int, endianness=(int)1234, signed=(boolean)true, width=(int)32, depth=(int)32, rate=(int)44100, channels=(int)2
本文介绍如何使用GStreamer通过命令行及C/C++代码播放音频文件。首先展示了一个具体的命令行示例,随后将深入探讨如何将GStreamer集成到QT项目中。文中详细解释了从文件源读取数据,经过解码、转换、重采样到最后输出的整个过程。
1万+

被折叠的 条评论
为什么被折叠?



