Смешивание KLV из файла (ов) в MPEG-TS с помощью GStreamer

Используя GStreamer (версия 1.12.4), я успешно создавал видео из jpegs, используя следующее утверждение:

gst-launch-1.0 multifilesrc location=image-%06d.jpg \
! image/jpeg,framerate=25/1 \
! decodebin \
! videoscale \
! video/x-raw \
! x264enc bitrate=10000 \
! mpegtsmux \
! filesink location=test-H264-10Mbps.ts

Как следует из этого утверждения, это создает файлы MPEG-TS в кодировке H.264, которые используют файлы jpeg со скоростью 25 кадров в секунду.

В настоящее время у меня также есть файлы с аналогичным именем klv, и я хотел бы объединить их в один и тот же выходной файл. Моя лучшая попытка (на основе других примеров) выглядит примерно так:

gst-launch-1.0 multifilesrc location=data-%06d.klv \
  ! meta/x-klv \
  ! mpegtsmux name=mux \
! multifilesrc location=image-%06d.jpg \
  ! image/jpeg,framerate=25/1 \
  ! decodebin \
  ! videoscale \
  ! video/x-raw \
  ! x264enc bitrate=10000 \
! mux. \
  ! filesink location=test-H264-KLV-10Mbps.ts

Это приводит к некоторым синтаксическим ошибкам:

0:00:00.081526898 20796 000000000529E360 WARN                 default grammar.y:1137:priv_gst_parse_yyerror: Error during parsing: syntax error, unexpected LINK
0:00:00.087062261 20796 000000000529E360 ERROR           GST_PIPELINE grammar.y:1061:priv_gst_parse_yyparse: syntax error
0:00:00.091393840 20796 000000000529E360 ERROR           GST_PIPELINE grammar.y:1061:priv_gst_parse_yyparse: syntax error
0:00:00.099172303 20796 000000000529E360 ERROR           GST_PIPELINE grammar.y:740:gst_parse_perform_link: could not link mux to multifilesrc1
WARNING: erroneous pipeline: syntax error

Я не против представить данные KLV в другом формате, если это облегчает ответ. Я также играл с добавлением операторов очереди, а также мультиплексированием в разных местах, но это приводит к одним и тем же сообщениям об ОШИБКЕ.

Какие-нибудь идеи, ресурсы или другие предложения, чтобы направить меня в правильном направлении для мультиплексирования KLV?

1 ответ

Решение

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

Другие вопросы по тегам