У меня есть входной стереофонический файл, и я хотел бы сместить один канал относительно другого. После этого ответа я ожидал, что смогу сделать то, что хотел:
- , разделив каналы с помощью элемента
deinterleave
, - , используя
gst_pad_set_offset
чтобы сдвинуть один из каналов, - объединяет каналы обратно с элементом
interleave
:
GstElement* pipeline = gst_parse_launch (
"filesrc location=\"input.wav\" ! decodebin ! deinterleave name=split "
"interleave name=join ! wavenc ! filesink location=test.wav "
"split.src_0 ! queue ! join.sink_0 "
"split.src_1 ! queue ! join.sink_1",
NULL);
GstElement* join = gst_bin_get_by_name (GST_BIN (pipeline), "join");
gst_pad_set_offset (gst_element_get_static_pad (join, "sink_0"), 10*GST_MSECOND);
Однако это не работает: выходной файл все еще имеетканалы идеально выровнены. Есть ли способ сдвинуть один канал без написания полного пользовательского элемента для этого?