我正在使用gstreamer管道将mp4文件编码为不同的比特率。我使用了来自gst-streaming-server代码的构建管道。但是,这个管道似乎无法工作。我无法理解管道的语法以进行调试。
gst-launch-1.0 filesrc location=video_test.mp4 name=src ! \
decodebin name=dec queue name=vqueue ! \
videosegmentclip name=vclip ! \
videoconvert ! \
video/x-raw, format=I420 ! \
videocrop top=0 bottom=0 left=0 right=0 ! \
queue ! \
tee name=vtee queue name=aqueue max-size-time=5000000000 max-size-bytes=0 max-size- buffers=0 ! \
audiosegmentclip name=aclip ! \
audioconvert ! \
audio/x-raw, channels=2 ! \
audioresample ! \
audio/x-raw, rate=48000 ! \
voaacenc bitrate=128000 ! \
queue ! \
tee name=atee vtee. ! \
queue ! \
videoscale add-borders=false ! \
video/x-raw,pixel-aspect-ratio=1/1,width=1280,height=720 ! \
x264enc name=venc0 bitrate=2372 tune=zerolatency ! \
queue ! \
mp4mux name=mux0 ! \
watchdog timeout=5000 ! \
filesink name=sink0 location=out0.mp4 atee. ! \
queue ! \
mux0. \
以下是完整的流程。对我来说难的部分在于理解以下内容
decodebin name=dec queue name=vqueue
上一行中没有!,在decodebin和queue之间不应该有!
tee name=vtee queue name=aqueue... ! audiosegmentclip
在上述行中,有一个名为vtee(videotee)的分支,但与audiosegmentclip相关联。这是如何运作的?
tee name=atee vtee. ! queue
在上面的行中,有一个名为"atee"的T字型管道符,紧接着是"vtee"。这意味着什么?在元素后面加上句点(.)有什么意义?
任何解释gstreamer管道语法的链接都将非常有帮助。
decodebin name=dec ! queue name=vqueue
以及teetee name=vtee ! queue name=aqueue
。 - Benjamin Trent