2016-08-10 15 views
1
  • Я хочу преобразовать файл FLAC в файл MP3 (и Vorbis, во второй раз).Как изменить битрейт аудиокодирования в Gstreamer в состоянии PLAYING?

  • Эти потоки MP3/Vorbis затем передаются в исходное состояние на второе устройство, которое их декодирует.

  • В зависимости от качества передачи, я хочу иметь возможность изменять битрейт на лету.

  • Изменение должно быть безразмерным (следовательно, «в состоянии PLAYING» в названии).

  • Специфичные кодеры: lamemp3enc и vorbisenc (и не могут быть изменены).


Насколько мне известно, изменение битрейта во время игры на самом деле не представляется возможным с этими кодеками.

Но я думаю, что есть чистые и простые способы изменить битрейт, не введя никакого пробела в поток: я хотел бы узнать о любом из них.

(NB: я написал любой, не все, я не прошу для «лучшего» Кстати, я не прошу для обзора, я просто хочу что-то, что работает.)

ответ

2

Прочитайте this ..

Вы будете:

  • элементами блока до lamemp3enc
  • вровень кодированные кадры в очередь с EOS посланных к хромой и выбросьте EOS, когда он выходит из хромой
  • затем установите lamemp3enc в состояние NULL
  • изменения параметров
  • набор хромых воспроизведения или паузы - это PREROLL снова с новым данные, используя новый битрейт
  • чек, когда хромой в игре, и тогда вы знаете, что все работает
  • не должно быть никакого зазора в очереди есть много старых буферов, которые он посылает вперед во время вы делаете ведьму

Вы можете вдохновить себя примером из приведенной выше ссылки. Однако вы не делаете удаления и добавления новых элементов. Не забудьте указать его в состояние NULL, поскольку оно будет отбрасывать все внутренние состояния (ну, надеюсь, если его не багги). Затем вы просто измените параметры с помощью g_object_set ...

Также я никогда этого не делал, поэтому вы можете также запросить IRC#gstreamer на freenode, если вы застряли или не уверены.

НТН

+0

О, это намного лучше: я в настоящее время с помощью пары '' GstInputSelector' и GstOutputSelector', но это было проблематично, на очень многих уровнях ... Это оказалось проще, чем я думал: я не используемые для обработки зондов, но они настолько мощные! Благодаря! – JohnW

 Смежные вопросы

  • Нет связанных вопросов^_^