20
janvier
2013
Gstreamer : modifier les tags d’un fichier mp3 (Vala)
janvier
2013
Voici un programme basique montrant le fonctionnement d’un pipeline comprenant id3v2mux, qui va agir sur les informations :
using Gst;
public static void main(string[] args){
Gst.init(ref args);
var pipe = new Pipeline("pipe");
var src = ElementFactory.make("filesrc","src");
src.set("location",args[1]);
var mux = ElementFactory.make("id3v2mux","mux");
GLib.Value val = new GLib.Value(typeof(string));
val.set_string("toto");
(mux as TagSetter).add_tag_value(TagMergeMode.REPLACE_ALL,"album",val);
var sink = ElementFactory.make("filesink","sink");
sink.set("location","new_mp3.mp3");
pipe.add_many(src,mux,sink);
src.link(mux);
mux.link(sink);
pipe.set_state(State.PLAYING);
new MainLoop().run();
}
public static void main(string[] args){
Gst.init(ref args);
var pipe = new Pipeline("pipe");
var src = ElementFactory.make("filesrc","src");
src.set("location",args[1]);
var mux = ElementFactory.make("id3v2mux","mux");
GLib.Value val = new GLib.Value(typeof(string));
val.set_string("toto");
(mux as TagSetter).add_tag_value(TagMergeMode.REPLACE_ALL,"album",val);
var sink = ElementFactory.make("filesink","sink");
sink.set("location","new_mp3.mp3");
pipe.add_many(src,mux,sink);
src.link(mux);
mux.link(sink);
pipe.set_state(State.PLAYING);
new MainLoop().run();
}
le programme prend en paramètre un fichier audio, puis génère un deuxième fichier (pour éviter de corrompre votre media original).