Please help, I need to convert multiple H.264 rtsp live stream to mpegts rtp simultaneously without a big latency

classic Classic list List threaded Threaded
7 messages Options
Reply | Threaded
Open this post in threaded view
|

Please help, I need to convert multiple H.264 rtsp live stream to mpegts rtp simultaneously without a big latency

ismail
This post was updated on .
Hi I hope you have a good day and that tomorrow will be better

Please help :

I need your help to do a multiconversion please and i am a beginer with gstreamer :

I have 8 camera connected to a debian calculator i have access to my calculator via putty/winscp, each camera have an IP and send H264 rtsp stream so i can see my H264 videos by opening "rtsp://192.168.50.4X:8601/wxHdSdiStreaming/2?videoCodecType=H.264" using vlc or ffplay on my computer. I don't have audio only video. Now i need to make my calculator convert all my cameras live stream to mpegts and send it using rtp protocol for each camera. So i installed gstreamer on my linux calculator using sudo aptitude build-dep  python-gst0.10 gstreamer0.10-plugins-good gstreamer0.10-plugins-ugly.

My first question is : do i have to install more gstreamer libraries, packages ? It is better if i program in c++ or to use command line ? and how can i do please?


My calculator OS : Linux version 2.6.32-5-686 (Debian 2.6.32-46) (dannf@debian.org) (gcc version 4.3.5 (Debian 4.3.5-4) ) #1 SMP Sun Sep 23 09:49:36 UTC 2012

My cameras :

====CAMERA 1
================================================================
[My camera stream to be converted is  : rtsp://192.168.50.41:8601/wxHdSdiStreaming/2?videoCodecType=H.264] [My conversion to Transport stream] [My converted stream output rtp {dst=192.168.50.22,port=5041,mux=ts,ttl=3}]
=================================================================
====CAMERA 2
================================================================

[My camera stream to be converted is  : rtsp://192.168.50.42:8601/wxHdSdiStreaming/2?videoCodecType=H.264] [My conversion to Transport stream] [My converted stream output rtp {dst=192.168.50.22,port=5042,mux=ts,ttl=3}]
=================================================================
.
.
.
====CAMERA 8
=================================================================
[My camera stream to be converted is  : rtsp://192.168.50.48:8601/wxHdSdiStreaming/2?videoCodecType=H.264] [My conversion to Transport stream] [My converted stream output rtp {dst=192.168.50.22,port=5048,mux=ts,ttl=3}]
=================================================================

My old commande line with vlc for each camera :

#################################################################
Shell :
OCTET="40"
PORT="5040"
SERVER="192.168.50.22"
IPCAM="192.168.50.$OCTET"

sudo -u test cvlc -vvv --sout-mux-caching=10 --clock-jitter=500 --sout-rtp-caching=10 --realrtsp-caching=10 --no-audio --no-sout-audio --no-osd --network-caching=10 rtsp://$IPCAM:8557/wxHdSdiStreaming/2?videoCodecType=H.264 --sout '#rtp{dst='$SERVER',port='$PORT',mux=ts,ttl=3}' --sout-keep &
#################################################################

But it doesn't work because i can't do simultanously more than one conversion a socond conversion perturbate the first one.

I tried other converter but same problems then an expert told me that i wont find better than gstreamer to do what i need to do today because i have a lot of stream to convert at the same time.

Commande line or if possible to do it in ".c++" programme i need to designe something that works every time without bugs :

gstreamer -input rtsp://192.168.50.41:8601/wxHdSdiStreaming/2?videoCodecType=H.264 convert_to_mpegts_and send_to_this_out_put {dst=192.168.50.22,port=5041,mux=ts,ttl=3} &
gstreamer -input rtsp://192.168.50.42:8601/wxHdSdiStreaming/2?videoCodecType=H.264 convert_to_mpegts_and send_to_this_out_put {dst=192.168.50.22,port=5042,mux=ts,ttl=3} &
gstreamer -input rtsp://192.168.50.43:8601/wxHdSdiStreaming/2?videoCodecType=H.264 convert_to_mpegts_and send_to_this_out_put {dst=192.168.50.22,port=5043,mux=ts,ttl=3} &
 [...] &
gstreamer -input rtsp://192.168.50.48:8601/wxHdSdiStreaming/2?videoCodecType=H.264 convert_to_mpegts_and send_to_this_out_put {dst=192.168.50.22,port=5048,mux=ts,ttl=3}

The biggest problem that i can have is to finish this development and have no video on some of the out-put  because that is why i am moving on gstreamer. What we hope is to be able to do this conversion correctly and permanently for at least 5 cameras at the same time without audio only video .

I am a beginner enthusiast of videos stream so all explanations will be appreciated don't hesitates to give all details that you can details

Thank you in advance

ENTHOUSIAST
Reply | Threaded
Open this post in threaded view
|

Re: Please help, I need to convert multiple H.264 rtsp live stream to mpegts rtp simultaneously without a big latency

Sebastian Dröge-3
On Fr, 2016-02-26 at 08:16 -0800, ismail wrote:

> Hi I hope you have a good day and that tomorrow will be better 
>
> Please help : 
>
> I need your help to do a multiconversion please and i am a beginer with
> gstreamer : 
>
> I have 8 camera connected to a debian calculator i have access to my
> calculator via putty/winscp, each camera have an IP and send H264 rtsp
> stream so i can see my H264 videos by opening
> "rtsp://192.168.50.4X:8601/wxHdSdiStreaming/2?videoCodecType=H.264" using
> vlc or ffplay on my computer. Now i need to make my calculator convert all
> my cameras live stream to mpegts and send it using rtp protocol for each
> camera. So i installed gstreamer on my linux calculator using sudo aptitude
> build-dep  python-gst0.10 gstreamer0.10-plugins-good
> gstreamer0.10-plugins-ugly.
>
> My first question is : do i have to install more gstreamer libraries,
> packages ?
You should use an 1.x version of GStreamer, which is included in the
last stable release of Debian too. 0.10 is no longer maintained since
3+ years now.

>  It is better if i program in c++ or to use command line ? and how
> can i do please?

gst-launch is only a debugging tool and not meant to be used for actual
applications. You can write your code in C or C++, or many other
languages (e.g. Python). Whatever language you prefer.

> I tried other converter but same problems then an expert told me that i wont
> find better than gstreamer to do what i need to do today because i have a
> lot of stream to convert at the same time.

You say you want to convert an RTSP stream containing H264 to MPEG-TS
and send it via RTP. Do you want to send it really via RTP only or do
you want to provide another RTSP stream with it?

But that basic data flow would be to use something like
  rtspsrc location=rtsp://... ! rtph264depay !
    rtph264pay ! ...

where the last ... depends on whether you want plain RTP, RTP with
RTCP, RTSP or whatever else.


Here you can find an example that does RTP with RTCP with VP8 and Opus,
but as input uses videotestsrc and audiotestsrc. In your case you would
omit the audio part and place the videotestsrc and encoding with the
rtspsrc and rtph264depay:
https://cgit.freedesktop.org/gstreamer/gst-plugins-good/tree/tests/examples/rtp/server-VTS-VP8-ATS-OPUS.sh


Here you can find an example that takes a gst-launch style pipeline
description and exposes an RTSP server with it:
https://cgit.freedesktop.org/gstreamer/gst-rtsp-server/tree/examples/test-launch.c

--
Sebastian Dröge, Centricular Ltd · http://www.centricular.com

_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel

signature.asc (968 bytes) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: Please help, I need to convert multiple H.264 rtsp live stream to mpegts rtp simultaneously without a big latency

ismail
Ok thank for the response i am trying to apply your advice's and i begin by updating gstreamer to gstreaamer 1.0 and debian tell me that the package is not recognized, you i am trying to update gstreamer or to install it on "debian squeeze i686" i can't find packages which works even apt-get :
 
 sudo apt-get install gstreamer1.0
Lecture des listes de paquets... Fait
Construction de l'arbre des dépendances
Lecture des informations d'état... Fait
E: Impossible de trouver le paquet gstreamer1.0  (means impossible to find packets for gstreamer1.0)
E: Impossible de trouver de paquet correspondant à l'expression rationnelle « gstreamer1.0 »


I tried a lot of things suggested on internet but nothing works for the moment i am eager to begin using gstreamer but i have a lot of diffeculty to install it on my "debian squeeze i686"

Many thanks in advance for advices



 
Reply | Threaded
Open this post in threaded view
|

Re: Please help, I need to convert multiple H.264 rtsp live stream to mpegts rtp simultaneously without a big latency

Samuel Hurst
On 29/02/2016 09:52, ismail wrote:
>  sudo apt-get install gstreamer1.0
> Lecture des listes de paquets... Fait
> Construction de l'arbre des dépendances
> Lecture des informations d'état... Fait
> E: Impossible de trouver le paquet gstreamer1.0  (means impossible to find
> packets for gstreamer1.0)
> E: Impossible de trouver de paquet correspondant à l'expression rationnelle
> « gstreamer1.0 »

On Debian, the package you're looking for is libgstreamer1.0. If I
recall correctly, then the rtspsrc elements are in Gstreamer Plugins
Good, so you'd need to install that too:

sudo apt-get install libgstreamer1.0 gstreamer1.0-plugins-base
gstreamer1.0-plugins-good

As a tip, you can use "apt-cache search gstreamer1.0" to find all
GStreamer 1.0 packages on Debian systems and it's derivatives. :)


Best Regards,
Sam
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: Please help, I need to convert multiple H.264 rtsp live stream to mpegts rtp simultaneously without a big latency

ismail
This post was updated on .
CONTENTS DELETED
The author has deleted this message.
Reply | Threaded
Open this post in threaded view
|

Re: Please help, I need to convert multiple H.264 rtsp live stream to mpegts rtp simultaneously without a big latency

ismail
This post was updated on .
CONTENTS DELETED
The author has deleted this message.
Reply | Threaded
Open this post in threaded view
|

Re: Please help, I need to convert multiple H.264 rtsp live stream to mpegts rtp simultaneously without a big latency

ismail
This post was updated on .
Thank you Sam I switched from Debian squeeze to Debian wheezy then I cleaned my packages using apt-get autoremove *gstreamer* than i did apt-get install gstreamer* And iT WORK FINE  now :) tested with gst-inspect-1.0.

Then i wanted to apply some other simple tests to convert  h264 to mpeg transport stream then i got with :

gst-launch-1.0 -v rtspsrc location="rtsp://192.168.50.48:8557/wxHdSdiStreaming/2?videoCodecType=H.264" ! videoconvert ! mpegtsmux ! tcpserversink host=192.168.50.22 port=5048

===> WARNING: erroneous pipeline: could not link videoconvert0 to mpegtsmux0

And in c++ i wanted to use Sebastien's Link to begin  with gstreamer c++ but i don't find my <gst/rtsp-server/rtsp-server.h> :
=========================================================
root@:/usr/include# cd gstreamer-1.0/
root@:/usr/include/gstreamer-1.0# ls
gst
root@:/usr/include/gstreamer-1.0# cd gst/
root@:/usr/include/gstreamer-1.0/gst# ls
allocators     gstallocator.h     gstcaps.h            gstdatetime.h         gstformat.h    gstmeta.h         gstpluginfeature.h  gststructure.h    gsttypefindfactory.h  pbutils
app            gstatomicqueue.h   gstchildproxy.h      gstdebugutils.h       gstghostpad.h  gstminiobject.h   gstplugin.h         gstsystemclock.h  gsttypefind.h         riff
audio          gstbin.h           gstclock.h           gstelementfactory.h   gst.h          gstobject.h       gstpoll.h           gsttaglist.h      gsturi.h              rtp
base           gstbuffer.h        gstcompat.h          gstelement.h          gstinfo.h      gstpad.h          gstpreset.h         gsttagsetter.h    gstutils.h            rtsp
check          gstbufferlist.h    gstconfig.h          gstelementmetadata.h  gstiterator.h  gstpadtemplate.h  gstquery.h          gsttask.h         gstvalue.h            sdp
controller     gstbufferpool.h    gstcontext.h         gstenumtypes.h        gstmacros.h    gstparamspecs.h   gstregistry.h       gsttaskpool.h     gstversion.h          tag
fft            gstbus.h           gstcontrolbinding.h  gsterror.h            gstmemory.h    gstparse.h        gstsample.h         gsttoc.h          math-compat.h         video
glib-compat.h  gstcapsfeatures.h  gstcontrolsource.h   gstevent.h            gstmessage.h   gstpipeline.h     gstsegment.h        gsttocsetter.h    net
root@:/usr/include/gstreamer-1.0/gst# cd rtsp/
root@:/usr/include/gstreamer-1.0/gst/rtsp# ls
gstrtspconnection.h  gstrtspdefs.h  gstrtsp-enumtypes.h  gstrtspextension.h  gstrtsp.h  gstrtspmessage.h  gstrtsprange.h  gstrtsptransport.h  gstrtspurl.h  rtsp.h
root@:/usr/include/gstreamer-1.0/gst/rtsp#
===========================================================

I already installed all automatics plugins for gsteamer good bad ugly.. do i have to add it manually?

Best regards and thank you in advance for your help
Isma