Stream FEC-encoded data over simple UDP-protocol?

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

Stream FEC-encoded data over simple UDP-protocol?

Anders Branderud
Hello!

I would like to have some guidelines of how to combine video streaming over UDP with FEC-encoding? I would like to know what changes to be made - e.g. which data to take (in which classes, in which functions) and FEC-encode before sending it; and where to find the buffers with data to FEC-decode on the client-side before playing it.

The server streams the data. It shouldn't keep track of any state of what data the clients have received, nor receive any acknowledgments from the clients during the video streaming. It merely keeps track of what data it has sent.
I want to use a simple UDP-protocol.

Thanks!

--Kind regards, Anders
[Personal blog] Will of the Creator  : Logical reasons - based on scientific premises - for the existence of a Super intelligent and A Orderly Creator and that He hasn't left His sapient creatures without an Instruction Manual - Torah ['books of Moses'] - to ascertain, and aspire to, His purpose.

[Company] Anders Branderud IT Solutions - www.abitsolutions.org




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

Re: Stream FEC-encoded data over simple UDP-protocol?

Bert Douglas
FEC is not needed for UDP.    The UDP service delivers a packet, or does not.
UDP does not randomly flip some bits inside the packet.
To tolerate packet loss, only redundancy is needed.

If you really want FEC, I don't think you will find ready to use libraries.
FEC is used in spacecraft applications.
There is some really good free documentation here.
The old stuff is simpler and probably good enough.
There is some free source code available.

Some related topics:
-- Reed Solomon block coding, used in CDroms, to protect against scratches.
-- RAID, used for fault tolerant disk arrays.

Good luck,
Bert Douglas


On Tue, Mar 27, 2012 at 4:11 AM, Anders Branderud <[hidden email]> wrote:
Hello!

I would like to have some guidelines of how to combine video streaming over UDP with FEC-encoding? I would like to know what changes to be made - e.g. which data to take (in which classes, in which functions) and FEC-encode before sending it; and where to find the buffers with data to FEC-decode on the client-side before playing it.

The server streams the data. It shouldn't keep track of any state of what data the clients have received, nor receive any acknowledgments from the clients during the video streaming. It merely keeps track of what data it has sent.
I want to use a simple UDP-protocol.

Thanks!

--Kind regards, Anders
[Personal blog] Will of the Creator  : Logical reasons - based on scientific premises - for the existence of a Super intelligent and A Orderly Creator and that He hasn't left His sapient creatures without an Instruction Manual - Torah ['books of Moses'] - to ascertain, and aspire to, His purpose.

[Company] Anders Branderud IT Solutions - www.abitsolutions.org




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



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

Re: Stream FEC-encoded data over simple UDP-protocol?

Olivier Crête-3
Hi,

On Tue, 2012-03-27 at 09:18 -0700, Bert Douglas wrote:
> FEC is not needed for UDP.    The UDP service delivers a packet, or
> does not.
> UDP does not randomly flip some bits inside the packet.
> To tolerate packet loss, only redundancy is needed.

I think he means Forward Erasure Correction (not Error), which is
definitely useful for UDP.

I wrote an experiment adding simple Reed-Solomon based FEC to Farstrem
last year [1]. There is also the IETF fecframe workground working on
that in the context of RTP [2].

That said, for most media applications, codec and media specific methods
are more efficient.

Olivier

[1] http://cgit.collabora.com/git/user/tester/farstream.git/log/?h=fec
or
http://cgit.collabora.com/git/user/tester/farstream.git/log/?h=tfrc-fec
[2] http://datatracker.ietf.org/wg/fecframe/




--
Olivier Crête
[hidden email]

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

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

Re: Stream FEC-encoded data over simple UDP-protocol?

gagankumarnigam
I am also facing the same problem. I am having two UHF radio 35 km apart  and sending live video stream from one station to other. but i recieved sliced video at other end. i used gstremer-0.10 and h284 codec but don' know how to implement FEC with gstreamer to reduce the packet loss. can you please tell me how to recover video quality by suing fec.