我正在使用以下管道传输.ts文件,该文件包含UDP上的视频和音频,
GST_DEBUG=6 gst-launch-1.0 filesrc location=vafpd.ts ! tsdemux program-number=10 name=demux demux. ! queue ! h264parse ! muxer.sink_300 mpegtsmux name=muxer prog-map=program_map,sink_300=10,sink_301=10 ! rtpmp2tpay ! udpsink host=192.168.1.139 port=8765 sync=true async=true qos=true demux. ! queue ! faad ! faac ! aacparse ! muxer.sink_301
只要音频和视频的持续时间相同,它就能正常工作并接收EOS。
但是当我播放一个带有音频和视频的.ts文件时。音频持续时间超过视频持续时间,然后它永远不会结束,也从未捕获EOS。
视频结束时,INFO下方停止打印,
0:00:03.392743787 3358 0xa90050 INFO h264parse gsth264parse.c:1335:gst_h264_parse_update_src_caps:<h264parse0> PAR 1/1
0:00:04.059453486 3358 0xa90050 INFO baseparse gstbaseparse.c:3644:gst_base_parse_set_latency:<h264parse0> min/max latency 0:00:00.033333333, 0:00:00.033333333
这些是日志消息,,,视频持续时间结束后,
0:05:19.714110763 3323 0x10ef990 LOG baseparse gstbaseparse.c:2919:gst_base_parse_chain:<h264parse0> chain leaving
0:05:19.714128717 3323 0x10ef990 LOG GST_SCHEDULING gstpad.c:3834:gst_pad_chain_data_unchecked:<h264parse0:sink> called chainfunction &gst_base_parse_chain with buffer 0x7f92a8013c00, returned ok
0:05:19.714152324 3323 0x10ef990 DEBUG queue_dataflow gstqueue.c:1277:gst_queue_loop:<queue0> queue is empty
0:05:19.714172126 3323 0x10ef990 LOG queue_dataflow gstqueue.c:1286:gst_queue_loop:<queue0> (queue0:src) wait for ADD: 0 of 0-200 buffers, 0 of 0-10485760 bytes, 0 of 0-1000000000 ns, 0 items
当GST-DEBUG = 3时,
0:00:00.031284464 3365 0x18ba920 WARN basesrc gstbasesrc.c:3483:gst_base_src_start_complete:<filesrc0> pad not activated yet
Pipeline is PREROLLING ...
0:00:00.033063992 3365 0x18bc450 WARN h264parse gsth264parse.c:1025:gst_h264_parse_handle_frame:<h264parse0> broken/invalid nal Type: 9 AU delimiter, Size: 2 will be dropped
0:00:00.047101000 3365 0x18bc4f0 FIXME basesink gstbasesink.c:3064:gst_base_sink_default_event:<udpsink0> stream-start event without group-id. Consider implementing group-id handling in the upstream elements
如何解决此问题?