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