#ffmpeg #pipeline #gstreamer
#ffmpeg #конвейер #gstreamer
Вопрос:
Я пытаюсь написать программу на C, которая копирует конвейер:
gst-launch -v filesrc location="bbb.mp4" ! decodebin2 ! ffmpegcolorspace ! autovideosink
У DecodeBin2 есть динамическая панель, и я подключил обратный вызов для обработки его создания. Однако я не могу связать его с ffmpegcolorspace, потому что функция pad всегда доступна для видео / quicktime. Я бы хотел, чтобы это было video / x-raw-yuv или что-то еще, совместимое с ffmpegcolorspace.
Возможно ли принудительно / выбрать тип вывода decodebin2?
Спасибо.
РЕДАКТИРОВАТЬ: Пожалуйста, не рекомендуйте playbin. Я пытаюсь научиться создавать конвейеры.
Комментарии:
1. зачем вам нужен ffmpegcolorspace? без этого конвейер работает …!!
2. вероятно, происходит то, что decodebin2 фактически уже обрабатывает преобразование цветового пространства. Так что, вероятно, это не требуется.
Ответ №1:
Is this possible to force/select the output type of decodebin2?
Нет, вы не можете принудительно или выбрать тип его исходной панели.
decoderbin2 выбирает соответствующий элемент демульсирования, и этот элемент демульсирования анализирует этот медиафайл и в зависимости от кодека потока элементов в этом медиафайле создает заглавные буквы / тип выходного сигнала / источника pad.so этот тип декодера может связываться с ним, и конвейер работает.
все это происходит в коде gstremer-plugin
итак, если вы хотите такой, вам нужно написать плагин самостоятельно ..!!
Комментарии:
1. Да, хороший ответ — это декодер, а не преобразователь типов. Спасибо.