当我设置参数时,我有一个pipeline
不会抛出 EOS 。stop-index
管道如下所示:
gst-launch-0.10 multifilesrc start-index=140 stop-index=145 location="ADIF%04d.jpg" ! image/jpeg, framerate=5/1 ! decodebin ! videoscale ! video/x-raw-yuv, width=1920, height=1080, framerate=5/1 ! ffmpegcolorspace ! queue ! x264enc bitrate=5000 ! queue ! h264parse ! avimux ! filesink location=x264enc_1080p_5fps_bitrate_5000.avi
此管道不断创建 5 帧 ADIF0140.jpg -> ADIF0145.jpg 的视频,重复,直到我手动停止它。例如,我会有一个显示 5 帧的视频,然后是 5 帧,一次又一次,等等。它就像卡在某种循环中一样。
如果我删除stop-index
,那么当文件列表用完时,管道将生成一个 EOS。但是,一旦达到特定数量的帧,我需要管道来抛出 EOS。
gst-inspect-0.10 multifilesrc
告诉我该stop-index
参数确实告诉管道在达到索引后停止。也许我误解了什么?
有没有办法让 multifilesrc 在达到stop-index
参数时生成 EOS?
编辑:
我遵循了评论部分的建议并将 -e 添加到我的 gst-launch 命令中。不幸的是,它对我的输出没有任何影响。仍然没有收到任何 EOS。但是,现在当我手动控制 c 时,我确实看到了一条消息,上面写着:
EOS on shutdown enabled -- Forcing EOS on the pipeline
Got EOS from element "pipeline0".
EOS received - stopping pipeline...
我export GST_DEBUG="*:3"
在运行带有参数集的 gst-launch 命令之前运行了一个,stop-index
并得到了一个我无法理解的有趣输出。
New clock: GstSystemClock
0:00:02.708615944 1037 0x16b7800 INFO GST_PADS gstpad.c:3554:gst_pad_event_default_dispatch:<avimux0:video_00> Sending event 0x16b78b0 (tag) to all internally linked pads
0:00:02.946719402 1037 0x16b7800 INFO h264parse gsth264parse.c:1137:gst_h264_parse_update_src_caps:<h264parse0> setting framerate in caps
0:00:02.946788159 1037 0x16b7800 INFO baseparse gstbaseparse.c:3234:gst_base_parse_set_latency:<h264parse0> min/max latency 0:00:00.200000000, 0:00:00.200000000
0:00:02.946850722 1037 0x16b7800 INFO GST_PADS gstpad.c:3554:gst_pad_event_default_dispatch:<avimux0:video_00> Sending event 0x16b78b0 (tag) to all internally linked pads
0:00:03.247947224 1037 0x16b7800 INFO GST_PADS gstpad.c:3554:gst_pad_event_default_dispatch:<avimux0:video_00> Sending event 0x16b78b0 (tag) to all internally linked pads
0:00:03.428127717 1037 0x16b7800 INFO GST_PADS gstpad.c:3554:gst_pad_event_default_dispatch:<avimux0:video_00> Sending event 0x16b78b0 (tag) to all internally linked pads
0:00:03.671530817 1037 0x16b7800 INFO GST_PADS gstpad.c:3554:gst_pad_event_default_dispatch:<avimux0:video_00> Sending event 0x16b78b0 (tag) to all internally linked pads
0:00:03.861473919 1037 0x16b7800 INFO GST_PADS gstpad.c:3554:gst_pad_event_default_dispatch:<avimux0:video_00> Sending event 0x16b78b0 (tag) to all internally linked pads
0:00:04.213566287 1037 0x16b7800 INFO GST_PADS gstpad.c:3554:gst_pad_event_default_dispatch:<avimux0:video_00> Sending event 0x16b78b0 (tag) to all internally linked pads
0:00:04.400715503 1037 0x16b7800 INFO GST_PADS gstpad.c:3554:gst_pad_event_default_dispatch:<avimux0:video_00> Sending event 0x16b78b0 (tag) to all internally linked pads
0:00:04.852917625 1037 0x16b7800 INFO GST_PADS gstpad.c:3554:gst_pad_event_default_dispatch:<avimux0:video_00> Sending event 0x16b78b0 (tag) to all internally linked pads
0:00:05.018448277 1037 0x16b7800 INFO GST_PADS gstpad.c:3554:gst_pad_event_default_dispatch:<avimux0:video_00> Sending event 0x16b78b0 (tag) to all internally linked pads
0:00:05.200358262 1037 0x16b7800 INFO GST_PADS gstpad.c:3554:gst_pad_event_default_dispatch:<avimux0:video_00> Sending event 0x16b78b0 (tag) to all internally linked pads
0:00:05.266578561 1037 0x16b7800 INFO h264parse gsth264parse.c:1137:gst_h264_parse_update_src_caps:<h264parse0> setting framerate in caps
0:00:05.266680768 1037 0x16b7800 INFO baseparse gstbaseparse.c:3234:gst_base_parse_set_latency:<h264parse0> min/max latency 0:00:00.200000000, 0:00:00.200000000
如果我运行相同的 gst-launch 命令,但没有停止索引,我会得到一个 EOS 输出:
New clock: GstSystemClock
0:00:02.073319330 1052 0xec1400 INFO GST_PADS gstpad.c:3554:gst_pad_event_default_dispatch:<avimux0:video_00> Sending event 0xec14b0 (tag) to all internally linked pads
0:00:02.073429953 1052 0xec1400 INFO GST_PADS gstpad.c:3554:gst_pad_event_default_dispatch:<h264parse0:sink> Sending event 0xec7e90 (eos) to all internally linked pads
0:00:02.073525245 1052 0xec1400 INFO GST_EVENT gstevent.c:606:gst_event_new_new_segment_full: creating newsegment update 0, rate 1.000000, format bytes, start 0, stop -1, position 0
0:00:02.073572978 1052 0xec1400 INFO GST_EVENT gstevent.c:606:gst_event_new_new_segment_full: creating newsegment update 0, rate 1.000000, format bytes, start 902654, stop -1, position 902654
Got EOS from element "pipeline0".
谁能帮助解释这些输出?