Streaming from dvblast to HLS using gstreamer

I have a dvblast that successfully multicast MPEG2 stream originating from DVB-T to the network and I am trying to compile this multicast MPEG2 stream and convert it to HLS on a Raspberry Pi 2 using gstreamer v1.0 as follows

gst-launch-1.0 udpsrc port=5004 multicast-group= caps="application/x-rtp,media=(string)video,clock-rate=(int)90000" ! rtpbin ! rtpmp2tdepay ! tsdemux ! mpegvideoparse ! omxmpeg2videodec ! queue ! videoconvert ! omxh264enc ! mpegtsmux ! hlssink max-files=5 location=/var/www/stream/segment%05d.ts playlist-location=/var/www/stream/output.m3u8 playlist-root=


HLS files have been successfully created and successfully uploaded via httpd to mediastreamvalidator who is happy with the results:

Processed 7 out of 7 segments:  OK

Segment bitrate: Average: 430.90 kbits/sec, Max: 741.38 kbits/sec


MPEG2 license in place and working.

Neither Safari nor iPhone can view this stream, in both cases a play button appears, but no video or audio pays. Ultimately Safari will say "Plugin is missing". I am struggling to figure out where I went wrong and am struggling to find any documentation or examples for this particular scenario. Can anyone point out in which direction this happened?


source to share

1 answer

Found that the current gst-omx gstreamer code does not handle the included AU delimiters, and the following patch is required in order for omxh264enc to generate a stream that Safari and / or iOS will play:

Using the June 9, 2015 version of mediastreamvalidator shows the following issues, but the stream now works in Safari and iOS:

WARNING: Video segment does not contain an IDR frame
--> Track ID 1

ERROR: (-12642) Playlist vs segment duration mismatch
--> Segment duration 4.7600, Playlist duration: 2.4000




All Articles