2017-04-09 105 views
0

即時通訊嘗試構建一個管道,它將讀取任何文件(mp3,ogg,flac等)並使用taginject元素更新其標記,但它不起作用。Gstreamer 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鏈接。

我將不勝感激任何幫助,我只是不知道我在做什麼錯(可能使用了錯誤的元素......但我只是無法找到它是正確的)

+0

找到了(簡單的)解決方案:gst-launch-1.0 filesrc location = file.mp3! id3demux! taginject tags =「title = bla,artist = blub,album = blablub」! id3mux! filesink location = output_file.mp3 – tagelicht

回答

0

您需要添加taginject之後的muxer,例如例如:

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

也使用parsebin避免解碼。