On 09/23/2016 07:04 AM, Simon Brown wrote:
On 23 September 2016 at 09:27, Simon Brown <[email protected]
<mailto:[email protected]>> wrote:
Hi,
I'm trying to serve a transport stream generated by hardware out on as an
RTP stream. Is there an example I can use to help me do
With ffmpeg or writing code to use the libs?
Probably get more ffmpeg help over in [email protected]
this? I've been looking through ffserver.c but that is much more
complicated than I need, and seems to be largely aimed at serving
files out.
Cheers,
Simon
Ok, I've taken a step back.
If I type:
ffplay -i tcp://localhost:60010?listen
in one window, and
ffmpeg -i INPUT -f mpegts tcp://localhost:60010
Not sure how to send mpegts over TCP, you can RTP on top of TCP but normally
mpegts is UDP.
Try something like this:
ffmpeg -i INPUT -c:v copy -listen 1 -f mpegts
"udp://227.0.0.1:5000?pkt_size=1316"
ffplay -i udp://227.0.0.1:5000
OR
vlc udp/ts://@227.0.0.1:5000
"-c:v copy" is the no transcode copy video only handling
You will need a multicast route (all multicast)
route add -net 224.0.0.0 netmask 240.0.0.0 dev eth0
OR single
route add -net 227.0.0.0 netmask 255.255.255.0 dev eth0
This will allow you to connect multiple listeners to the stream.
my video plays.
For my use though, I don't want to wade through ffmpeg.c to find what it's
doing, and wanted a much simpler example that isn't transcoding,
but just transmitting a ready made transport stream. I found in the examples directory
"http_multiclient.c" and thought this would do for
me, at least as a starting point.
My problem is that if I start ffplay with "?listen" first, then
http_multiclient won't connect, yet if I start http_multiclient first it
says "Client not accepted" and aborts.
My http_multiclient command line is:
./http_multiclient ts_file tcp://localhost:60010
It seems that http_multiclient is trying to listen on the server socket, but not
avio_accept is returning immediately with a "client not
accepted". How can I make this work?
Regards,
Simon
I was not able to get that sample to work, it always core dumped on
ret = ffurl_accept(sc, &cc); in libavformat/aviobuf.c
Prob because of the av_assert0(!*c); in avio.c since I have a debug build.
If you are trying to write code to do this, start with transcoding.c
In the main while loop, just use the "else"
} else {
/* remux this frame without reencoding */
That should get you pretty close to what you want...ignore the extra code
open in, open out, while in frame write out frame...
Thanks
cco
_______________________________________________
Libav-user mailing list
[email protected]
http://ffmpeg.org/mailman/listinfo/libav-user