使用GStreamer将KLV从文件复用到MPEG-TS

时间:2018-01-22 13:45:43

标签: video metadata gstreamer gstreamer-1.0

使用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

正如声明所暗示的那样,这会创建H.264编码的MPEG-TS文件,这些文件使用25 fps的jpeg文件。

我目前也有类似名称的klv文件,并希望将它们复制到相同的输出ts文件中。我最好的尝试(基于其他示例)看起来像这样:

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数据。我还在添加队列语句以及在不同位置进行多路复用,但到目前为止会产生相同的ERROR消息。

任何想法,资源或其他建议让我在正确的方向上复用KLV?

1 个答案:

答案 0 :(得分:1)

  

您可以使用任何随时可用的gstreamer插件   要复制文件,你必须编写自己的应用程序,参考   link为类似的例子。