Streaming/ manipulating stream

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

Streaming/ manipulating stream

stproj
Greetings,

I would like to ask if its possible to stream from my webcam to a pc and then either save the desired stream or re-stream to a second pc with gstreamer.So far it seems like its a powerfull tool but can its cappabilities extend that far?
Reply | Threaded
Open this post in threaded view
|

RES: Streaming/ manipulating stream

dfussia
CONTENTS DELETED
The author has deleted this message.
Reply | Threaded
Open this post in threaded view
|

Re: Streaming/ manipulating stream

Chuck Crisler-2
In reply to this post by stproj
Yes, but you need the proper pipelines on each system. When I have done that, I start the display pipeline first, then work backward to the video source. That way sockets are open and available to receive packets immediately.

On Fri, Oct 23, 2015 at 3:24 PM, stproj <[hidden email]> wrote:
Greetings,

I would like to ask if its possible to stream from my webcam to a pc and
then either save the desired stream or re-stream to a second pc with
gstreamer.So far it seems like its a powerfull tool but can its
cappabilities extend that far?



--
View this message in context: http://gstreamer-devel.966125.n4.nabble.com/Streaming-manipulating-stream-tp4674241.html
Sent from the GStreamer-devel mailing list archive at Nabble.com.
_______________________________________________
gstreamer-devel mailing list
[hidden email]
http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel



--
___________________________________________________
Name
Chuck Crisler

Mutualink, Inc.
3 Lan Dr.
Westford, MA  01886

Direct: <a href="tel:%28866%29%20957-5465" value="+18669575465" target="_blank">(978) 490-3006 Ext: 118

E-Mail: [hidden email] 

Web: www.mutualink.net


The information in this email, and subsequent attachments, may contain confidential information that is 
intended solely for the attention and use of the named addressee(s). This message or any part thereof 
must not be disclosed, copied, distributed or retained by any person without authorization from the addressee.

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

Re: Streaming/ manipulating stream

stproj
Thank you for your fast reply. I was thinking earlier this evening if it is possible to build an app that uses   a stream which is being transmitted to a pc, named pc1, which is controlled by a second pc, named pc2.

What i was thinking goes like this: pc1 receives a stream which is either re-streamed to pc2 for display or is saved to pc1, all controlled by the decision that pc2 makes in real time. Do you think that this sort of application can be achieved?  
Reply | Threaded
Open this post in threaded view
|

Re: RES: Streaming/ manipulating stream

stproj
In reply to this post by dfussia
Since i like coding i was thinking of writing the specified application by myself but also using the plugins that gstreamer offers. Where should i start reading?

I was thinking of:
Application Development Manual
http://gstreamer.freedesktop.org/data/doc/gstreamer/head/manual/html/index.html

Plugin Writer's Guide
http://gstreamer.freedesktop.org/data/doc/gstreamer/head/pwg/html/index.html

Is there any other guide/book to read from?
Reply | Threaded
Open this post in threaded view
|

Re: Streaming/ manipulating stream

dfussia
In reply to this post by stproj
CONTENTS DELETED
The author has deleted this message.
Reply | Threaded
Open this post in threaded view
|

Re: Streaming/ manipulating stream

stproj
Yes i am thinking the same about logic control. In fact what i am thinking about is putting a gui button on the controller pc (pc2) much like a remote control with two states. The first state will capture the restream from pc1 and display it on my screen (pc2) and the second is to save the stream on pc1 for later use.


My problem so far is that i dont have any reference on how to stream audio and video from one pc to another. Should i use RTP to transmit the media? Any reference would be helpful (tutorial or paradigm) regardings streaming media.

Reply | Threaded
Open this post in threaded view
|

RES: Streaming/ manipulating stream

dfussia
CONTENTS DELETED
The author has deleted this message.
Reply | Threaded
Open this post in threaded view
|

Re: RES: Streaming/ manipulating stream

stproj
Thanx, i am reading the examples rtpaux.c and rtpclient.c  but both of them
have GST_RTP_PROFILE_AVPF which i have some difficulty to understand. I know
its value is 3 according to the link below, but what it actually means?

https://fossies.org/dox/gst-plugins-base-1.6.0/gstrtpdefs_8h_source.html



--
View this message in context: http://gstreamer-devel.966125.n4.nabble.com/Streaming-manipulating-stream-tp4674241p4674292.html
Sent from the GStreamer-devel mailing list archive at Nabble.com.
_______________________________________________
gstreamer-devel mailing list
[hidden email]
http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: RES: Streaming/ manipulating stream

stproj
In reply to this post by dfussia
Thanx, i am reading the examples rtpaux.c and rtpclient.c  but both of them have GST_RTP_PROFILE_AVPF which i have some difficulty to understand. According to link below i can tell what its type but i dont understand what is represents.

To be precise more, when i compile the .c files i get an error report that GST_RTP_PROFILE_AVPF is undeclared. But when i set its value the file is compiled without warnings and i can execute. What i dont understand is what type of media is being send with server-rtpaux.c  and how  can alternate the stream with some other file, i.e. "test.mp4"

https://fossies.org/dox/gst-plugins-base-1.6.0/gstrtpdefs_8h_source.html
Reply | Threaded
Open this post in threaded view
|

Re: RES: Streaming/ manipulating stream

Sebastian Dröge-3
On Di, 2015-10-27 at 14:30 -0700, stproj wrote:
> Thanx, i am reading the examples rtpaux.c and rtpclient.c  but both
> of them
> have GST_RTP_PROFILE_AVPF which i have some difficulty to understand.
> According to link below i can tell what its type but i dont
> understand what is represents.

It's the RTP profile specified by https://tools.ietf.org/html/rfc4585

AVP is the one from https://tools.ietf.org/html/rfc3550, the S* ones
are additionally using SRTP: https://tools.ietf.org/html/rfc3711

> To be precise more, when i compile the .c files i get an error report
> that GST_RTP_PROFILE_AVPF is undeclared. But when i set its value the
> file is compiled without warnings and i can execute.

Which version of GStreamer are you using? They were added in 1.6.
It
sounds like you use an older version of gst-plugins-base for
compilation than when running things.

>  What i dont understand is what type of media is being send with
> server-rtpaux.c  and how  can alternate the stream with some other
> file, i.e. "test.mp4"

http://cgit.freedesktop.org/gstreamer/gst-plugins-good/tree/tests/examples/rtp/server-rtpaux.c#n23

It's using alaw for audio and Theora for video.

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


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

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

Re: RES: Streaming/ manipulating stream

stproj
I have tried as you suggested and i install gstreamer1.6 on a clean ubuntu 14.04 installation.

The guide i use through this processes is : http://www.linuxfromscratch.org/blfs/view/svn/multimedia/gstreamer10.html
For base plugins i work according to this link: http://www.linuxfromscratch.org/blfs/view/svn/multimedia/gst10-plugins-base.html
For base plugins the make test gives:
============================================================================
Testsuite summary for GStreamer Base Plug-ins 1.6.0
============================================================================
# TOTAL: 60
# PASS:  13
# SKIP:  0
# XFAIL: 0
# FAIL:  47
# XPASS: 0
# ERROR: 0


Regardless, i install the base plugins but as i try to compile and run the server-rtpaux.c example i get this error

gcc -Wall server-rtpaux.c -o rtpaux $(pkg-config --cflags --libs gstreamer-1.0)
./rtpaux
./rtpaux: symbol lookup error: ./rtpaux: undefined symbol: _gst_fraction_type   //The error message i receive.

Does is it have to do because the installation process of gstreamer and plugins base,good,bad,ugly in unfinished?



 
Reply | Threaded
Open this post in threaded view
|

Re: RES: Streaming/ manipulating stream

stproj
This post was updated on .
In reply to this post by dfussia
dfussia wrote
yes, you can use the 'tee' GstElement.

http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-plugins/html/gstreamer-plugins-tee.html

To create multiples stream from one source and manipulate it to send other hosts, save in file or to play on your pc.

Regards,
Daniel Fussia
Greetings again, I am working on a project of mine which i find very educational.

Again, what i am trying to achieve is to forward a rtp traffic from a source to a pc (named pc1) and then forward again on other pc (named pc2) which will receive an either transcoded form or display as is. What i have achieved so far:

1. Transfer an mp4 from one pc to another.
2. Forward rtp traffic from pc1 to pc2 and then saved to a filesink on pc2

What i have a problem right now is that i want to extend my 2nd achievement (described above) to something more:

3. Receive rtp traffic, store it to a filesink and forward using udpsink (a mix of 1 and 2 described above)

I provide my pipelines for both 1,2 and 3 but no.3 needs some modification

Sender:

gst-launch-1.0 -v filesrc location = test.mp4 ! qtdemux ! h264parse ! avdec_h264 ! videoconvert ! x264enc ! rtph264pay ! udpsink host=192.168.10.18 port = 5000

Receiver

1. gst-launch-1.0 -e udpsrc port=5000 caps="application/x-rtp , media=(string)video , clock-rate=(int)90000, encoding-name=(string)H264" ! rtpjitterbuffer latency=100 ! rtph264depay ! h264parse ! mp4mux ! filesink location=try.mp4

2. gst-launch-1.0  -v udpsrc port=5000 ! -e udpsink host= 192.168.10.19 port = 5001    
# this is pc1 and excute the 1st  Receiver pipeline on pc2 to store the traffic on pc2, modyfying
# ports and addresses

3. gst-launch-1.0 udpsrc port=5000 -e -v tee name=tp  tp.  ! queue ! udpsink host=192.168.10.19 port=5001 tp. ! queue ! caps="application/x-rtp , media=(string)video , clock-rate=(int)90000, encoding-name=(string)H264" ! rtpjitterbuffer latency=100 ! rtph264depay ! h264parse ! mp4mux ! filesink location=my.mp4

#The above gives this error:  link without source element. I am trying to understand if i have split the pipeline correct or not using tee to and queue .

Any advice would be very helpful.

Best Regards,
S.

 
Reply | Threaded
Open this post in threaded view
|

Re: Streaming/ manipulating stream

stproj
In reply to this post by stproj
Hello again,

It seems that i have found a working pipeline for rtp saving and forwarding to another ip addres:

gst-launch-1.0 udpsrc port=5000 -e -v   caps="application/x-rtp , media=(string)video , clock-rate=(int)90000, encoding-name=(string)H264"   !   rtpjitterbuffer latency=100 ! tee name=t  t. ! queue ! rtph264depay !  h264parse  !  mp4mux ! filesink location=frwd8.mp4 async=false  t. ! queue !  udpsink host=192.168.10.19 port=5001

What i did wrong probably is that i was using tee very early.

Best Regards,
S.
Reply | Threaded
Open this post in threaded view
|

Re: Streaming/ manipulating stream

stproj
Greetings again,

I would like now to stream both audio and video from a simple .mp4 file. Is it possible to do over rtp or will i need rtcp? And how will the pipeline be formed on the receiver side? What is your opinion? Will i need two udpsinks, one for audio and one for video? Or three? Meaning one more for control messages.


Best regards,
S.


I have made some modifications with the pipelines i shared a couple of days ago, but they do not seem to be working. I will share those later .