Как сместить один аудиоканал относительно другого - PullRequest
0 голосов
/ 03 октября 2019

У меня есть входной стереофонический файл, и я хотел бы сместить один канал относительно другого. После этого ответа я ожидал, что смогу сделать то, что хотел:

  • , разделив каналы с помощью элемента 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);

Однако это не работает: выходной файл все еще имеетканалы идеально выровнены. Есть ли способ сдвинуть один канал без написания полного пользовательского элемента для этого?

...