Transcoding to multiple image size

Dmitriy Novash programer at wnet.ua
Tue Apr 25 07:36:01 UTC 2017


Maybe fixed in later releases.
A try to compile from sources, but have some troubles.

Can you suggest something else?
What i need to get working pipeline with videoscale?


22.04.2017 07:33, Bruce Tsai пишет:
> 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?
>
> --
> Yi-Lung (Bruce) Tsai
> wagamama.tsai at gmail.com <mailto:wagamama.tsai at gmail.com>
>
>
>
>
>
>> On Apr 21, 2017, at 8:16 PM, Dmitriy Novash <programer at wnet.ua 
>> <mailto:programer at wnet.ua>> wrote:
>>
>> 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”.
>>>
>>> Here is modified version:
>>>
>>> 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 ! 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.
>>>
>>> --
>>> Yi-Lung (Bruce) Tsai
>>> wagamama.tsai at gmail.com <mailto:wagamama.tsai at gmail.com>
>>>
>>>
>>>
>>>
>>>
>>>> On Apr 21, 2017, at 2:32 PM, Dmitriy Novash <programer at wnet.ua 
>>>> <mailto:programer at wnet.ua>> wrote:
>>>>
>>>> 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
>>>> _______________________________________________
>>>> 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
>> _______________________________________________
>> 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/20170425/f157eb89/attachment-0001.html>


More information about the gstreamer-devel mailing list