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=239.255.1.30 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=http://192.168.225.2/stream/

      

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?

+3


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:

https://bugzilla.gnome.org/show_bug.cgi?id=736211



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

      

+1


source







All Articles