Gstreamer taginject管道不起作用

时间:2017-04-09 06:56:11

标签: gstreamer

我试图构建一个管道,它将读取任何文件(mp3,ogg,flac等)并使用taginject元素更新其标签,但它无效。

以下是我的尝试:

gst-launch-1.0 filesrc location=file.mp3 ! decodebin ! taginject tags="title=bla,artist=blub" ! filesink location=output_file.mp3

结果:管道运行,但它从4mb文件创建一个50mb文件,并且该大文件不可播放(也可能不包含标签)。

gst-launch-1.0 filesrc location=file.mp3 ! taginject tags="title=test,artist=blub" ! filesink location=output_file.mp3

结果:管道运行并创建可播放的输出文件,但它不包含任何标记。

gst-launch-1.0 filesrc location=file.mp3 ! decodebin ! taginject tags="title=test,artist=blub" ! encodebin ! filesink location=output_file.mp3

结果:管道未运行。它说taginject不能与encodebin链接。

我很感激任何帮助,我只是不知道我做错了什么(可能使用了错误的元素......但我找不到哪些是正确的)

1 个答案:

答案 0 :(得分:0)

您需要在taginject之后添加一个多路复用器,例如:类似的东西:

gst-launch-1.0 filesrc location=file.mp3 ! parsebin ! \
taginject tags="title=bla,artist=blub" ! id3v2mux ! \
filesink location=output_file.mp3

同样使用parsebin可以避免解码。