Quantcast

Issue burning subtitle into video when seeking

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Issue burning subtitle into video when seeking

Tany
Hi,

My goal is to transcode a video with burning subtitle(by using textoverlay).
I reference Gstreamer tutorial and write a little program to test 2 pipeline:

pipeline 1(without subtitle):
multiqueue max-size-buffers=10000 max-size-bytes=0 max-size-time=0 name=mq splitfilesrc location="/share/Multimedia/debug/harry/Harry.Potter.and.the.Deathly.Hallows.Part.1.2010.BluRay.1080p.AAC.4Audio.x264-CHD.mkv" ! matroskademux name=dmx  dmx. ! queue ! identity sync=false ! h264parse ! omxh264dec ! omxh264enc force-keyframe-period=40 scaling-width=1920 scaling-height=800 ! h264parse ! mq.sink_0  mq.src_0 ! mpegtsmux name=mux ! filesink location="/share/Public/aaa.ts"  dmx. ! aacparse ! queue ! identity sync=false ! faad name=adec ! audioconvert ! audioresample ! audio/x-raw,channels=2,rate=44100 ! queue ! voaacenc ! audio/mpeg,mpegversion=4,stream-format=raw ! aacparse ! mq.sink_1  mq.src_1 ! audio/mpeg,mpegversion=4,stream-format=raw ! mux.

pipeline 2(with subtitle):
multiqueue max-size-buffers=10000 max-size-bytes=0 max-size-time=0 name=mq textoverlay wait-text=false name=txo splitfilesrc location="/share/Multimedia/debug/harry/Harry.Potter.and.the.Deathly.Hallows.Part.1.2010.BluRay.1080p.AAC.4Audio.x264-CHD.mkv" ! matroskademux name=dmx  dmx. ! queue ! identity sync=false ! h264parse ! omxh264dec ! txo.video_sink  txo.src ! omxh264enc force-keyframe-period=40 scaling-width=1920 scaling-height=800 ! h264parse ! mq.sink_0  mq.src_0 ! mpegtsmux name=mux ! filesink location="/share/Public/aaa.ts"  filesrc location="/share/Multimedia/debug/harry/Harry.Potter.and.the.Deathly.Hallows.Part.1.2010.BluRay.1080p.AAC.4Audio.x264-CHD.zh-TW.srt" ! subparse subtitle-encoding=UTF-8 ! txo.text_sink dmx. ! aacparse ! queue ! identity sync=false ! faad name=adec ! audioconvert ! audioresample ! audio/x-raw,channels=2,rate=44100 ! queue ! voaacenc ! audio/mpeg,mpegversion=4,stream-format=raw ! aacparse ! mq.sink_1  mq.src_1 ! audio/mpeg,mpegversion=4,stream-format=raw ! mux.

Pipeline 1 works correctly whether seek event is performed or not.
Pipeline 2 is also working correctly without seeking but have issue while seek is performed.
It will block at

ret = gst_element_seek_simple (pipeline, GST_FORMAT_TIME,  GST_SEEK_FLAG_KEY_UNIT, 7280 * GST_SECOND);

and never return.

Is there anything I can do about this? the attached file is my test code.

regards,
Tany

gst_seek.c
Loading...