IPTV Packetizer for Gstreamer

This is GStreamer module that packetize 188 bytes TS packets into one UDP packet. I wrote it because I need raw UDP stream from gstreamer, but without packetizer each TS packet sent in UDP packet independently, but this makes highly packetized stream, where some packets may be dropped due rate-limit or shaper. So some solution for decreasing packetisation is needed.

The standard IPTV-UDP packet contains 7 MPEG-TS packets, and I can't find any plugin that do the trick. The similar plug-in is rtpmp2tpayload, but it adds RTP header to the stream, and some IPTV Set-Top-Boxes can't play this stream.

Download:

gst-plugin-udptspayload-0_10_tar.gz

 

Example pipe:

gst-launch -v -e --gst-debug=*:2,udptspayload:3 alsasrc device="plughw:0,0" slave-method=0 ! queue leaky=1 ! \
audiorate ! aacplus ! \
queue ! flutsmux name=muuxer ! udptspayload packets=6 ! \
queue ! udpsink host=239.128.128.1 port=1234 ttl-mc=16 auto-multicast=true

You can adjust how much packets to collect befor give then to the next module. Just add "packets=[number]" argument to the module to set how much to collect.

Maybe the same task can be done with "queue2" plugin magic, but I can't successfuly do the trick with it.

Post new comment

The content of this field is kept private and will not be shown publicly.
  • Web page addresses and e-mail addresses turn into links automatically.
  • Allowed HTML tags: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <span> <img>
  • Lines and paragraphs break automatically.

More information about formatting options

CAPTCHA
All comments are PRE-MODERATED! Enter what you see:
Image CAPTCHA
Enter the characters shown in the image.