replacing rtph264pay with appsink and live555 streamer, for live video streaming

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

replacing rtph264pay with appsink and live555 streamer, for live video streaming

msemsar
Dear All,

I want to stream live video, by directly passing the output of video encoder (NAL units) to live555.
Here is the pipeline that I am using:
gst-launch-1.0 -v videotestsrc ! x264enc ! video/x-h264, stream-format=avc ! appsink  caps="video/x-h264, stream-format=avc"
and then I have a callback function connected to "new-sample" signal and sends any coming packet to Live555.

Currently, the delivered rtp packets to other end are not streamable and as I checked with wireshark the nal_unit_type is unspecified for all packets.

Is there anything that I am missing here?

In other words, the following similar pipeline works fine. So what happens between x264enc and rtph264pay that I should consider in my design?

gst-launch-1.0 -v videotestsrc ! x264enc ! video/x-h264, stream-format=avc ! rtph264pay pt=96 ! udpsink host=[IP_ADDRESS] port=5000


Thanks


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

AW: replacing rtph264pay with appsink and live555 streamer, for live video streaming

Thornton, Keith

Hi,

I think you should be streaming in byte-stream format. Try adding a h264parse after the encoder and then a caps of format=byte-stream. You might want to add a queue between the two elements

Grüße

 

Von: gstreamer-devel [mailto:[hidden email]] Im Auftrag von mehdi semsarzadeh
Gesendet: Mittwoch, 3. Mai 2017 18:15
An: Discussion of the development of and with GStreamer <[hidden email]>
Betreff: replacing rtph264pay with appsink and live555 streamer, for live video streaming

 

Dear All,

I want to stream live video, by directly passing the output of video encoder (NAL units) to live555.
Here is the pipeline that I am using:
gst-launch-1.0 -v videotestsrc ! x264enc ! video/x-h264, stream-format=avc ! appsink  caps="video/x-h264, stream-format=avc"

and then I have a callback function connected to "new-sample" signal and sends any coming packet to Live555.


Currently, the delivered rtp packets to other end are not streamable and as I checked with wireshark the nal_unit_type is unspecified for all packets.

Is there anything that I am missing here?

 

In other words, the following similar pipeline works fine. So what happens between x264enc and rtph264pay that I should consider in my design?

gst-launch-1.0 -v videotestsrc ! x264enc ! video/x-h264, stream-format=avc ! rtph264pay pt=96 ! udpsink host=[IP_ADDRESS] port=5000

 

Thanks

 


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

Re: replacing rtph264pay with appsink and live555 streamer, for live video streaming

msemsar
Hi,
Thanks for your answer,
Actually I needed a way to get raw NAL units (without starting codes), which I couldn't find any gstreamer element which does so. Hence I manually removed starting codes from NAL units when stream-format is set to byte-stream.
For any one who may ended up here, avc stream-format in gstreamer is NOT equal to byte-stream format without leading start codes, it is totally a different structure. It took me a while to realize that.
Yours,


On Thu, May 4, 2017 at 12:58 AM, Thornton, Keith <[hidden email]> wrote:

Hi,

I think you should be streaming in byte-stream format. Try adding a h264parse after the encoder and then a caps of format=byte-stream. You might want to add a queue between the two elements

Grüße

 

Von: gstreamer-devel [mailto:[hidden email]] Im Auftrag von mehdi semsarzadeh
Gesendet: Mittwoch, 3. Mai 2017 18:15
An: Discussion of the development of and with GStreamer <[hidden email]>
Betreff: replacing rtph264pay with appsink and live555 streamer, for live video streaming

 

Dear All,

I want to stream live video, by directly passing the output of video encoder (NAL units) to live555.
Here is the pipeline that I am using:
gst-launch-1.0 -v videotestsrc ! x264enc ! video/x-h264, stream-format=avc ! appsink  caps="video/x-h264, stream-format=avc"

and then I have a callback function connected to "new-sample" signal and sends any coming packet to Live555.


Currently, the delivered rtp packets to other end are not streamable and as I checked with wireshark the nal_unit_type is unspecified for all packets.

Is there anything that I am missing here?

 

In other words, the following similar pipeline works fine. So what happens between x264enc and rtph264pay that I should consider in my design?

gst-launch-1.0 -v videotestsrc ! x264enc ! video/x-h264, stream-format=avc ! rtph264pay pt=96 ! udpsink host=[IP_ADDRESS] port=5000

 

Thanks

 


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




--
Mehdi Semsarzadeh

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