Hi all.
I have many TV streams (Mpeg2) in udp multicast. I want to have stream in H264+AAC in udp multicast with 3 resolutions: 1:1 (original),1:2,1:4. Now I do it with 3 processes of gst-launch, but for optimization of CPU usage I think I can do it in one process. After several tries I get 3 videos with 3 resolutions, but i can't get audio for all threads, only for one. I'm using gstreamer 1.00+ version: $ gst-launch-1.0 --version gst-launch-1.0 version 1.8.3 GStreamer 1.8.3 My configuration: gst-launch- 1.0
udpsrc uri=udp: //239.50.50.50:1234 ! queue ! tsparse ! queue ! tsdemux
name=demux \ I can't join mpedtsmux and tee. So I want to decode video, get 3 copies, each copy scale to some resolution, encode, decode + encode audio and join to each copy of video, output each copy in udp unicast to some port. Help, maybe someone have working solution for my task. _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
First, there is no need to mix-use “decodebin” and “tsdemux”. “decodebin” already has demux capability. Second, there are too many “queue” in pipeline. Each “queue” introduces a new thread. Too many unnecessary threads is not a good idea. Third, “tee” for audio stream is also necessary. Each “mux” needs a copy of video and a copy of audio. Use “tee” to get three copies of video and audio respectively. Then combine each pair of video and audio to a “mpegtsmux”. I tried to rewrite your pipeline as follows: gat-launch-1.0 uridecodebin name=dec uri=<a href="udp://239.50.50.50:1234" class="">udp://239.50.50.50:1234 \ dec. ! videoconvert ! deinterlace ! videoscale method=0 ! tee name=vt \ dec. ! audioconvert ! audioresample ! audio/x-raw,rate=48000,channels=1 ! audiorate ! queue ! voaacenc bitrate=32000 ! tee name=at \ vt. ! queue ! videorate ! video/x-raw,width=640,height=512,framerate=25/1 ! x264enc ! h264parse ! mpegtsmux name=muxer alignment=7 \ at. ! queue ! aacparse ! muxer. ! rtpmp2tpay ! udpsink host=127.0.0.1 port=1111 \ vt. ! queue ! videorate ! video/x-raw,width=320,height=256,framerate=25/1 ! x264enc ! h264parse ! mpegtsmux name=muxer1 alignment=7 \ at. ! queue ! aacparse ! muxer1. ! rtpmp2tpay ! udpsink host=127.0.0.1 port=1112 \ vt. ! queue ! videorate ! video/x-raw,width=160,height=128,framerate=25/1 ! x264enc ! h264parse ! mpegtsmux name=muxer2 alignment=7 \ at. ! queue ! aacparse ! muxer2. ! rtpmp2tpay ! udpsink host=127.0.0.1 port=1113 I didn’t verify above pipeline on my machine. You could try it with first pair of output only. Simplicity is good for debug. Then you could add second pair and then third pair.
_______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
Hi, Bruce. 20.04.2017 18:58, Bruce Tsai пишет:
-- BR, Dmitriy Novash Wnet IPTV/Media team tel: +380(44) 5-900-800 (доп. 1132) http://wnet.ua _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
I made a mistake when connecting “mpegtsmux” to “rtpmp2tpay”.
Here is modified version: gat-launch-1.0 uridecodebin name=dec uri=<a href="udp://239.50.50.50:1234" class="">udp://239.50.50.50:1234 \ dec. ! videoconvert ! deinterlace ! videoscale method=0 ! tee name=vt \ dec. ! audioconvert ! audioresample ! audio/x-raw,rate=48000,channels=1 ! audiorate ! queue ! voaacenc bitrate=32000 ! tee name=at \ vt. ! queue ! videorate ! video/x-raw,width=640,height=512,framerate=25/1 ! x264enc ! h264parse ! mpegtsmux name=muxer alignment=7 ! rtpmp2tpay ! udpsink host=127.0.0.1 port=1111 \ at. ! queue ! aacparse ! muxer. \ vt. ! queue ! videorate ! video/x-raw,width=320,height=256,framerate=25/1 ! x264enc ! h264parse ! mpegtsmux name=muxer1 alignment=7 ! rtpmp2tpay ! udpsink host=127.0.0.1 port=1112 \ at. ! queue ! aacparse ! muxer1. \ vt. ! queue ! videorate ! video/x-raw,width=160,height=128,framerate=25/1 ! x264enc ! h264parse ! mpegtsmux name=muxer2 alignment=7 ! rtpmp2tpay ! udpsink host=127.0.0.1 port=1113 \ at. ! queue ! aacparse ! muxer2.
_______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
Hi. 21.04.2017 10:35, Bruce Tsai пишет:
I made a mistake when connecting “mpegtsmux” to “rtpmp2tpay”. -- BR, Dmitriy Novash Wnet IPTV/Media team tel: +380(44) 5-900-800 (доп. 1132) http://wnet.ua _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
Let’s write one pair of A/V to disk to see if A/V sync problem occurs.
gat-launch-1.0 uridecodebin name=dec uri=<a href="udp://239.50.50.50:1234" class="">udp://239.50.50.50:1234 \ dec. ! videoconvert ! deinterlace ! videoscale method=0 ! tee name=vt \ dec. ! audioconvert ! audioresample ! audio/x-raw,rate=48000,channels=1 ! audiorate ! queue ! voaacenc bitrate=32000 ! tee name=at \ vt. ! queue ! videorate ! video/x-raw,width=640,height=512,framerate=25/1 ! x264enc ! h264parse ! mpegtsmux name=muxer alignment=7 ! filesink location=test.ts \ at. ! queue ! aacparse ! muxer. \ ===== Then check UDP output of one pair of A/V to see if A/V sync problem occurs. gat-launch-1.0 uridecodebin name=dec uri=<a href="udp://239.50.50.50:1234" class="">udp://239.50.50.50:1234 \ dec. ! videoconvert ! deinterlace ! videoscale method=0 ! tee name=vt \ dec. ! audioconvert ! audioresample ! audio/x-raw,rate=48000,channels=1 ! audiorate ! queue ! voaacenc bitrate=32000 ! tee name=at \ vt. ! queue ! videorate ! video/x-raw,width=640,height=512,framerate=25/1 ! x264enc ! h264parse ! mpegtsmux name=muxer alignment=7 ! rtpmp2tpay ! udpsink host=127.0.0.1 port=1111 \ at. ! queue ! aacparse ! muxer.
_______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
In reply to this post by Yi-Lung Tsai
Recorded video to disk is perfect, but real time output to udp
have A/V sync problem. 21.04.2017 10:35, Bruce Tsai пишет:
I made a mistake when connecting “mpegtsmux” to “rtpmp2tpay”. -- BR, Dmitriy Novash Wnet IPTV/Media team tel: +380(44) 5-900-800 (доп. 1132) http://wnet.ua _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
This situation is weird to me.
I suppose A/V timestamp is fixed in “mpegtsmux” so “filesink” or “udpsink” shall output same result. Maybe “rtpmp2tpay” changes the timestamp information?
_______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
Maybe fixed in later releases. 22.04.2017 07:33, Bruce Tsai пишет:
This situation is weird to me. -- BR, Dmitriy Novash Wnet IPTV/Media team tel: +380(44) 5-900-800 (доп. 1132) http://wnet.ua _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
How about this:
gat-launch-1.0 uridecodebin name=dec uri=<a href="udp://239.50.50.50:1234" class="">udp://239.50.50.50:1234 \ dec. ! videoconvert ! deinterlace ! videoscale method=0 ! tee name=vt \ dec. ! audioconvert ! audioresample ! audio/x-raw,rate=48000,channels=1 ! audiorate ! queue ! voaacenc bitrate=32000 ! tee name=at \ vt. ! queue ! videorate ! video/x-raw,width=640,height=512,framerate=25/1 ! x264enc ! h264parse ! queue ! mpegtsmux name=muxer alignment=7 ! rtpmp2tpay ! queue ! udpsink host=127.0.0.1 port=1111 \ at. ! queue ! aacparse ! muxer. \ vt. ! queue ! videorate ! video/x-raw,width=320,height=256,framerate=25/1 ! x264enc ! h264parse ! queue ! mpegtsmux name=muxer1 alignment=7 ! rtpmp2tpay ! queue ! udpsink host=127.0.0.1 port=1112 \ at. ! queue ! aacparse ! muxer1. \ vt. ! queue ! videorate ! video/x-raw,width=160,height=128,framerate=25/1 ! x264enc ! h264parse ! queue ! mpegtsmux name=muxer2 alignment=7 ! rtpmp2tpay ! queue ! udpsink host=127.0.0.1 port=1113 \ at. ! queue ! aacparse ! muxer2. I add one more “queue" between “h264parse” and “mpegtsmux”, and one more “queue” between “rtpmp2tpay” and “udpsink”. First added “queue” is to make sure “x264enc” is not blocked by “mpegtsmux”. Second added “queue” is to decouple “mpegtsmux” from “udpsink”.
_______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
./grammar.y(506): gst_parse_no_more_pads ():
/GstPipeline:pipeline0/GstURIDecodeBin:dec: 29.04.2017 17:41, Bruce Tsai пишет:
How about this: -- BR, Dmitriy Novash Wnet IPTV/Media team tel: +380(44) 5-900-800 (доп. 1132) http://wnet.ua _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
Free forum by Nabble | Edit this page |