Transcoding to multiple image size

Dmitriy Novash programer at wnet.ua
Fri Apr 21 06:32:06 UTC 2017


Hi, Bruce.

Problem with combine video and audio.
$ GST_DEBUG=1 gst-launch-1.0 uridecodebin name=dec 
uri=udp://239.50.50.50:1234 dec. ! videoconvert ! deinterlace ! tee 
name=vt dec. ! audioconvert ! audioresample ! 
audio/x-raw,rate=48000,channels=1 ! audiorate ! queue ! voaacenc 
bitrate=32000 ! tee name=at vt. ! videoscale method=0 ! 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
0:00:00.015467297  3955      0x1f2a980 ERROR GST_PIPELINE 
grammar.y:959:priv_gst_parse_yyparse: syntax error
0:00:00.015490467  3955      0x1f2a980 ERROR GST_PIPELINE 
grammar.y:959:priv_gst_parse_yyparse: syntax error

Simplify code:
$ GST_DEBUG=1 gst-launch-1.0 uridecodebin name=dec 
uri=udp://239.50.50.50:1234 dec. ! videoconvert ! deinterlace ! tee 
name=vt dec. ! audioconvert ! audioresample ! 
audio/x-raw,rate=48000,channels=1 ! audiorate ! queue ! voaacenc 
bitrate=32000 ! tee name=at vt. ! videoscale method=0 ! videorate ! 
video/x-raw,width=640,height=512,framerate=25/1 ! x264enc ! h264parse ! 
mpegtsmux name=muxer alignment=7 at. ! fakesink
Установка конвейера в состояние PAUSED…
Конвейер работает и не требует состояния PREROLL…
Установка конвейера в состояние PLAYING…
New clock: GstSystemClock


20.04.2017 18:58, Bruce Tsai пишет:
> 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=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.
>
>
> --
> Yi-Lung (Bruce) Tsai
> wagamama.tsai at gmail.com <mailto:wagamama.tsai at gmail.com>
>
>
>
>
>
>> On Apr 20, 2017, at 9:49 PM, Dmitriy Novash <programer at wnet.ua 
>> <mailto:programer at wnet.ua>> wrote:
>>
>> 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 \
>> demux. ! queue ! mpegvideoparse ! queue ! decodebin ! queue ! 
>> deinterlace ! \
>> tee name=tee1 ! queue ! videoscale method=0 ! videorate ! 
>> video/x-raw, width=640, height=512, framerate=25/1 ! x264enc ! 
>> h264parse ! mpegtsmux name=muxer alignment=7 \
>> demux. ! queue !  decodebin ! queue ! audioconvert ! audioresample ! 
>> queue ! audio/x-raw, rate=48000, channels=1 ! audiorate ! voaacenc 
>> bitrate=32000 ! queue ! aacparse ! queue ! tee name=tee2 ! queue ! 
>> muxer. \
>> muxer. ! rtpmp2tpay ! udpsink host=127.0.0.1 port=1111 \
>> tee1. ! queue ! videoscale method=0 ! videorate ! video/x-raw, 
>> width=320, height=256, framerate=25/1 ! x264enc ! h264parse ! 
>> mpegtsmux name=muxer1 alignment=7 muxer1. ! rtpmp2tpay ! udpsink 
>> host=127.0.0.1 port=1112 \
>> tee1. ! queue ! videoscale method=0 ! videorate ! video/x-raw, 
>> width=160, height=128, framerate=25/1 ! x264enc ! h264parse ! 
>> mpegtsmux name=muxer2 alignment=7 muxer2. ! rtpmp2tpay ! udpsink 
>> host=127.0.0.1 port=1113|
>>
>> 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
>> gstreamer-devel at lists.freedesktop.org 
>> <mailto:gstreamer-devel at lists.freedesktop.org>
>> https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
>
>
>
> _______________________________________________
> gstreamer-devel mailing list
> gstreamer-devel at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel

-- 
BR, Dmitriy Novash
Wnet IPTV/Media team
tel: +380(44) 5-900-800 (доп. 1132)
http://wnet.ua

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/gstreamer-devel/attachments/20170421/0820d1ac/attachment.html>


More information about the gstreamer-devel mailing list