Re: [FFmpeg-devel] How to implement pcap ffmpeg format?
> On Wed, Feb 22, 2023 at 6:00 PM Zhao Zhili wrote: > > You missed the point. Use any (streaming) container which supports the codec, e.g., webm. I've already discussed solutions with ivf and h264 byte stream which are the same as webm but even easier in implementation. They are not applicable. ___ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".
Re: [FFmpeg-devel] How to implement pcap ffmpeg format?
> 在 2023年2月23日,01:22,sonntex 写道: > > Are you sure that vp8 and vp9 can be put to mpeg-ts? You missed the point. Use any (streaming) container which supports the codec, e.g., webm. Please don’t top post. > > On Wed, Feb 22, 2023 at 3:25 PM Zhao Zhili wrote: > >>> -Original Message- >>> From: ffmpeg-devel On Behalf Of >> sonntex >>> Sent: 2023年2月22日 21:59 >>> To: FFmpeg development discussions and patches >>> Subject: Re: [FFmpeg-devel] How to implement pcap ffmpeg format? >>> >>> So, if I have an rtp stream inside my application and want to save it >>> somehow to a playable media container, I have to wrap this stream to >>> something that could be transferred by pipe to ffmpeg, for instance to >> ivf >>> or to h264 byte stream. The first format requires deep codec parsing to >> >> Why not remux RTP to something like TS at the first replace, instead of >> deal with pcap? >> >>> extract at least width and height, perhaps other properties. Seems easy >> but >>> non-unified. Another approach is to pass the stream to a local udp >> socket, >>> simultaneously execute and control the ffmpeg process. It could lead to >>> data loss and requires socket coding in such a simple application. >>> >>> I understand why ffmpeg developers don't want to include pcap support to >>> ffmpeg but it could be implemented as an external code by somebody else >> for >>> whom it seems to be useful. I can't really find any blockers to do that >>> except that all the code inside rtpdec is encapsulated in its *.c file >> and >>> is not accessible from a hypothetical new pcap format. What I found is >> that >>> udp.c derives url protocol interface and does the same as pcap format >>> should do - extract rtp packets from a source and pass it further to >>> rtpdec. The problem is that pcap format is a format, not a protocol, >> which >>> reads data from ffmpeg file protocol. And the question was how to build >> the >>> chain of -> -> ? >>> >>> On Wed, Feb 22, 2023 at 12:54 PM Rémi Denis-Courmont >>> wrote: >>> >>>> Hi, >>>> >>>> I agree with Kieran that this doesn't look like it belongs in FFmpeg >> or in >>>> any media framework. In fact, Wireshark has some support for extracting >>>> media from RTP, and that seems like the right place for it. >>>> >>>> With that said, you can't realistically pass RTP packets on the >> standard >>>> input. RTP is datagram-based. Packet boundaries are relevant; it can't >> go >>>> over a pipe. Unless you use a Unix datagram socket as standard input, >> but >>>> that would be very weird. >>>> >>>> Besides, there may be multiple streams on different ports, with >> different >>>> payload maps, and the receiver needs to know which port which packet >> came >>>> on. >>>> >>>> Note: Unfortunately, earlier attempts to standardise a container for >>>> RTP/RTCP packets have failed. >>>> ___ >>>> ffmpeg-devel mailing list >>>> ffmpeg-devel@ffmpeg.org >>>> https://ffmpeg.org/mailman/listinfo/ffmpeg-devel >>>> >>>> To unsubscribe, visit link above, or email >>>> ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe". >>>> >>> ___ >>> ffmpeg-devel mailing list >>> ffmpeg-devel@ffmpeg.org >>> https://ffmpeg.org/mailman/listinfo/ffmpeg-devel >>> >>> To unsubscribe, visit link above, or email >>> ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe". >> >> ___ >> ffmpeg-devel mailing list >> ffmpeg-devel@ffmpeg.org >> https://ffmpeg.org/mailman/listinfo/ffmpeg-devel >> >> To unsubscribe, visit link above, or email >> ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe". >> > ___ > ffmpeg-devel mailing list > ffmpeg-devel@ffmpeg.org > https://ffmpeg.org/mailman/listinfo/ffmpeg-devel > > To unsubscribe, visit link above, or email > ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe". ___ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".
Re: [FFmpeg-devel] How to implement pcap ffmpeg format?
Are you sure that vp8 and vp9 can be put to mpeg-ts? On Wed, Feb 22, 2023 at 3:25 PM Zhao Zhili wrote: > > -Original Message- > > From: ffmpeg-devel On Behalf Of > sonntex > > Sent: 2023年2月22日 21:59 > > To: FFmpeg development discussions and patches > > Subject: Re: [FFmpeg-devel] How to implement pcap ffmpeg format? > > > > So, if I have an rtp stream inside my application and want to save it > > somehow to a playable media container, I have to wrap this stream to > > something that could be transferred by pipe to ffmpeg, for instance to > ivf > > or to h264 byte stream. The first format requires deep codec parsing to > > Why not remux RTP to something like TS at the first replace, instead of > deal with pcap? > > > extract at least width and height, perhaps other properties. Seems easy > but > > non-unified. Another approach is to pass the stream to a local udp > socket, > > simultaneously execute and control the ffmpeg process. It could lead to > > data loss and requires socket coding in such a simple application. > > > > I understand why ffmpeg developers don't want to include pcap support to > > ffmpeg but it could be implemented as an external code by somebody else > for > > whom it seems to be useful. I can't really find any blockers to do that > > except that all the code inside rtpdec is encapsulated in its *.c file > and > > is not accessible from a hypothetical new pcap format. What I found is > that > > udp.c derives url protocol interface and does the same as pcap format > > should do - extract rtp packets from a source and pass it further to > > rtpdec. The problem is that pcap format is a format, not a protocol, > which > > reads data from ffmpeg file protocol. And the question was how to build > the > > chain of -> -> ? > > > > On Wed, Feb 22, 2023 at 12:54 PM Rémi Denis-Courmont > > wrote: > > > > > Hi, > > > > > > I agree with Kieran that this doesn't look like it belongs in FFmpeg > or in > > > any media framework. In fact, Wireshark has some support for extracting > > > media from RTP, and that seems like the right place for it. > > > > > > With that said, you can't realistically pass RTP packets on the > standard > > > input. RTP is datagram-based. Packet boundaries are relevant; it can't > go > > > over a pipe. Unless you use a Unix datagram socket as standard input, > but > > > that would be very weird. > > > > > > Besides, there may be multiple streams on different ports, with > different > > > payload maps, and the receiver needs to know which port which packet > came > > > on. > > > > > > Note: Unfortunately, earlier attempts to standardise a container for > > > RTP/RTCP packets have failed. > > > ___ > > > ffmpeg-devel mailing list > > > ffmpeg-devel@ffmpeg.org > > > https://ffmpeg.org/mailman/listinfo/ffmpeg-devel > > > > > > To unsubscribe, visit link above, or email > > > ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe". > > > > > ___ > > ffmpeg-devel mailing list > > ffmpeg-devel@ffmpeg.org > > https://ffmpeg.org/mailman/listinfo/ffmpeg-devel > > > > To unsubscribe, visit link above, or email > > ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe". > > ___ > ffmpeg-devel mailing list > ffmpeg-devel@ffmpeg.org > https://ffmpeg.org/mailman/listinfo/ffmpeg-devel > > To unsubscribe, visit link above, or email > ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe". > ___ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".
Re: [FFmpeg-devel] How to implement pcap ffmpeg format?
> -Original Message- > From: ffmpeg-devel On Behalf Of sonntex > Sent: 2023年2月22日 21:59 > To: FFmpeg development discussions and patches > Subject: Re: [FFmpeg-devel] How to implement pcap ffmpeg format? > > So, if I have an rtp stream inside my application and want to save it > somehow to a playable media container, I have to wrap this stream to > something that could be transferred by pipe to ffmpeg, for instance to ivf > or to h264 byte stream. The first format requires deep codec parsing to Why not remux RTP to something like TS at the first replace, instead of deal with pcap? > extract at least width and height, perhaps other properties. Seems easy but > non-unified. Another approach is to pass the stream to a local udp socket, > simultaneously execute and control the ffmpeg process. It could lead to > data loss and requires socket coding in such a simple application. > > I understand why ffmpeg developers don't want to include pcap support to > ffmpeg but it could be implemented as an external code by somebody else for > whom it seems to be useful. I can't really find any blockers to do that > except that all the code inside rtpdec is encapsulated in its *.c file and > is not accessible from a hypothetical new pcap format. What I found is that > udp.c derives url protocol interface and does the same as pcap format > should do - extract rtp packets from a source and pass it further to > rtpdec. The problem is that pcap format is a format, not a protocol, which > reads data from ffmpeg file protocol. And the question was how to build the > chain of -> -> ? > > On Wed, Feb 22, 2023 at 12:54 PM Rémi Denis-Courmont > wrote: > > > Hi, > > > > I agree with Kieran that this doesn't look like it belongs in FFmpeg or in > > any media framework. In fact, Wireshark has some support for extracting > > media from RTP, and that seems like the right place for it. > > > > With that said, you can't realistically pass RTP packets on the standard > > input. RTP is datagram-based. Packet boundaries are relevant; it can't go > > over a pipe. Unless you use a Unix datagram socket as standard input, but > > that would be very weird. > > > > Besides, there may be multiple streams on different ports, with different > > payload maps, and the receiver needs to know which port which packet came > > on. > > > > Note: Unfortunately, earlier attempts to standardise a container for > > RTP/RTCP packets have failed. > > ___ > > ffmpeg-devel mailing list > > ffmpeg-devel@ffmpeg.org > > https://ffmpeg.org/mailman/listinfo/ffmpeg-devel > > > > To unsubscribe, visit link above, or email > > ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe". > > > ___ > ffmpeg-devel mailing list > ffmpeg-devel@ffmpeg.org > https://ffmpeg.org/mailman/listinfo/ffmpeg-devel > > To unsubscribe, visit link above, or email > ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe". ___ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".
Re: [FFmpeg-devel] How to implement pcap ffmpeg format?
So, if I have an rtp stream inside my application and want to save it somehow to a playable media container, I have to wrap this stream to something that could be transferred by pipe to ffmpeg, for instance to ivf or to h264 byte stream. The first format requires deep codec parsing to extract at least width and height, perhaps other properties. Seems easy but non-unified. Another approach is to pass the stream to a local udp socket, simultaneously execute and control the ffmpeg process. It could lead to data loss and requires socket coding in such a simple application. I understand why ffmpeg developers don't want to include pcap support to ffmpeg but it could be implemented as an external code by somebody else for whom it seems to be useful. I can't really find any blockers to do that except that all the code inside rtpdec is encapsulated in its *.c file and is not accessible from a hypothetical new pcap format. What I found is that udp.c derives url protocol interface and does the same as pcap format should do - extract rtp packets from a source and pass it further to rtpdec. The problem is that pcap format is a format, not a protocol, which reads data from ffmpeg file protocol. And the question was how to build the chain of -> -> ? On Wed, Feb 22, 2023 at 12:54 PM Rémi Denis-Courmont wrote: > Hi, > > I agree with Kieran that this doesn't look like it belongs in FFmpeg or in > any media framework. In fact, Wireshark has some support for extracting > media from RTP, and that seems like the right place for it. > > With that said, you can't realistically pass RTP packets on the standard > input. RTP is datagram-based. Packet boundaries are relevant; it can't go > over a pipe. Unless you use a Unix datagram socket as standard input, but > that would be very weird. > > Besides, there may be multiple streams on different ports, with different > payload maps, and the receiver needs to know which port which packet came > on. > > Note: Unfortunately, earlier attempts to standardise a container for > RTP/RTCP packets have failed. > ___ > ffmpeg-devel mailing list > ffmpeg-devel@ffmpeg.org > https://ffmpeg.org/mailman/listinfo/ffmpeg-devel > > To unsubscribe, visit link above, or email > ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe". > ___ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".
Re: [FFmpeg-devel] How to implement pcap ffmpeg format?
On Wed, Feb 22, 2023 at 7:54 AM Rémi Denis-Courmont wrote: > I agree with Kieran that this doesn't look like it belongs in FFmpeg or in > any media framework. In fact, Wireshark has some support for extracting media > from RTP, and that seems like the right place for it. > > With that said, you can't realistically pass RTP packets on the standard > input. RTP is datagram-based. Packet boundaries are relevant; it can't go > over a pipe. Unless you use a Unix datagram socket as standard input, but > that would be very weird. > > Besides, there may be multiple streams on different ports, with different > payload maps, and the receiver needs to know which port which packet came on. I generally use tcpreplay for this sort of use case (it replays pcap files back onto the network and then ffmpeg can receive them). It would support the use case with multiple streams. The timing isn't perfect though, so if you play files that are many Mbps you might find the stream is being played out +/- 1% of realtime, which can have some annoying effects with certain applications. Also its important to note that this does mean streams can't be processed faster than realtime (i.e. you can't process five minutes of RTP packets in a few seconds). One other thing worth noting is there can be some unexpected side-effects of tcpreplay that require you to rewrite MAC addresses if playing back on a different host than captured on, and rewriting UDP checksums if the NIC is doing hardware offloading. As a result I typically have to preprocess my pcap files (using tcprewrite) prior to playing them back out. Devin -- Devin Heitmueller, Senior Software Engineer LTN Global Communications o: +1 (301) 363-1001 w: https://ltnglobal.com e: devin.heitmuel...@ltnglobal.com ___ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".
Re: [FFmpeg-devel] How to implement pcap ffmpeg format?
Hi, I agree with Kieran that this doesn't look like it belongs in FFmpeg or in any media framework. In fact, Wireshark has some support for extracting media from RTP, and that seems like the right place for it. With that said, you can't realistically pass RTP packets on the standard input. RTP is datagram-based. Packet boundaries are relevant; it can't go over a pipe. Unless you use a Unix datagram socket as standard input, but that would be very weird. Besides, there may be multiple streams on different ports, with different payload maps, and the receiver needs to know which port which packet came on. Note: Unfortunately, earlier attempts to standardise a container for RTP/RTCP packets have failed. ___ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".
Re: [FFmpeg-devel] How to implement pcap ffmpeg format?
It might be interesting. I didn’t find how to pass rtp to ffmpeg stdin. That is why I started thinking about pcap. Could you please show an example? On Wed, 22 Feb 2023 at 08:04, Gijs Peskens wrote: > Wouldn't the simplest solution just be a tiny tool that unwraps the pcap > stuff and just passes the packet data out on stdout? > That's assuming ffmpeg allows receiving RTP packets on stdin. > > On 21-02-2023 23:55, sonntex wrote: > > New pcap ffmpeg format can have all options rtpdec requires. > > > > Anyway, I don't suggest you implement this feature. I just want to find a > > good entry point to start coding personally. > > > > I need to create a development tool for rtp tracing, and pcap files seem > a > > good idea because I can grab rtp using tcpdump, or create pcap files > > directly in my application, or whatever. It's better then wrap vp8/vp9 to > > ivf or h264 to byte stream and pass it to ffmpeg via pipe because it > > doesn't require coding of new solutions for every video and audio formats > > transferring over rtp. > > > > On Tue, Feb 21, 2023 at 10:38 PM Kieran Kunhya wrote: > > > >> On Tue, 21 Feb 2023, 22:33 sonntex, wrote: > >> > >>> I want to implement something which helps me to play rtp stored in pcap > >>> files. > >>> > >>> tcpdump -i lo udp port 5 -s0 -w - | ffplay -i - > >>> > >>> The specification of pcap files is really simple and I could create a > new > >>> ffmpeg format, but don't know how to process rtp packets extracted from > >>> pcap, because it seems that all functions for rtp parsing are private. > >>> > >>> Need a good example of inner ffmpeg formats processing. > >>> > >> How is ffmpeg meant to know the meaning of the contents of a pcap and > the > >> format inside? > >> > >> This is a very bad idea. > >> > >> What's next, ffmpeg implementing userspace TCP? Are we going to add > support > >> for parsing filesystems as well? > >> > >> Regards, > >> Kieran Kunhya > >> > >> ___ > >> ffmpeg-devel mailing list > >> ffmpeg-devel@ffmpeg.org > >> https://ffmpeg.org/mailman/listinfo/ffmpeg-devel > >> > >> To unsubscribe, visit link above, or email > >> ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe". > >> > > ___ > > ffmpeg-devel mailing list > > ffmpeg-devel@ffmpeg.org > > https://ffmpeg.org/mailman/listinfo/ffmpeg-devel > > > > To unsubscribe, visit link above, or email > > ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe". > ___ > ffmpeg-devel mailing list > ffmpeg-devel@ffmpeg.org > https://ffmpeg.org/mailman/listinfo/ffmpeg-devel > > To unsubscribe, visit link above, or email > ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe". > ___ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".
Re: [FFmpeg-devel] How to implement pcap ffmpeg format?
Wouldn't the simplest solution just be a tiny tool that unwraps the pcap stuff and just passes the packet data out on stdout? That's assuming ffmpeg allows receiving RTP packets on stdin. On 21-02-2023 23:55, sonntex wrote: New pcap ffmpeg format can have all options rtpdec requires. Anyway, I don't suggest you implement this feature. I just want to find a good entry point to start coding personally. I need to create a development tool for rtp tracing, and pcap files seem a good idea because I can grab rtp using tcpdump, or create pcap files directly in my application, or whatever. It's better then wrap vp8/vp9 to ivf or h264 to byte stream and pass it to ffmpeg via pipe because it doesn't require coding of new solutions for every video and audio formats transferring over rtp. On Tue, Feb 21, 2023 at 10:38 PM Kieran Kunhya wrote: On Tue, 21 Feb 2023, 22:33 sonntex, wrote: I want to implement something which helps me to play rtp stored in pcap files. tcpdump -i lo udp port 5 -s0 -w - | ffplay -i - The specification of pcap files is really simple and I could create a new ffmpeg format, but don't know how to process rtp packets extracted from pcap, because it seems that all functions for rtp parsing are private. Need a good example of inner ffmpeg formats processing. How is ffmpeg meant to know the meaning of the contents of a pcap and the format inside? This is a very bad idea. What's next, ffmpeg implementing userspace TCP? Are we going to add support for parsing filesystems as well? Regards, Kieran Kunhya ___ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe". ___ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe". ___ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".
Re: [FFmpeg-devel] How to implement pcap ffmpeg format?
New pcap ffmpeg format can have all options rtpdec requires. Anyway, I don't suggest you implement this feature. I just want to find a good entry point to start coding personally. I need to create a development tool for rtp tracing, and pcap files seem a good idea because I can grab rtp using tcpdump, or create pcap files directly in my application, or whatever. It's better then wrap vp8/vp9 to ivf or h264 to byte stream and pass it to ffmpeg via pipe because it doesn't require coding of new solutions for every video and audio formats transferring over rtp. On Tue, Feb 21, 2023 at 10:38 PM Kieran Kunhya wrote: > On Tue, 21 Feb 2023, 22:33 sonntex, wrote: > > > I want to implement something which helps me to play rtp stored in pcap > > files. > > > > tcpdump -i lo udp port 5 -s0 -w - | ffplay -i - > > > > The specification of pcap files is really simple and I could create a new > > ffmpeg format, but don't know how to process rtp packets extracted from > > pcap, because it seems that all functions for rtp parsing are private. > > > > Need a good example of inner ffmpeg formats processing. > > > > How is ffmpeg meant to know the meaning of the contents of a pcap and the > format inside? > > This is a very bad idea. > > What's next, ffmpeg implementing userspace TCP? Are we going to add support > for parsing filesystems as well? > > Regards, > Kieran Kunhya > > > > ___ > ffmpeg-devel mailing list > ffmpeg-devel@ffmpeg.org > https://ffmpeg.org/mailman/listinfo/ffmpeg-devel > > To unsubscribe, visit link above, or email > ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe". > ___ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".
Re: [FFmpeg-devel] How to implement pcap ffmpeg format?
On Tue, 21 Feb 2023, 22:33 sonntex, wrote: > I want to implement something which helps me to play rtp stored in pcap > files. > > tcpdump -i lo udp port 5 -s0 -w - | ffplay -i - > > The specification of pcap files is really simple and I could create a new > ffmpeg format, but don't know how to process rtp packets extracted from > pcap, because it seems that all functions for rtp parsing are private. > > Need a good example of inner ffmpeg formats processing. > How is ffmpeg meant to know the meaning of the contents of a pcap and the format inside? This is a very bad idea. What's next, ffmpeg implementing userspace TCP? Are we going to add support for parsing filesystems as well? Regards, Kieran Kunhya > ___ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".