tag:blogger.com,1999:blog-13033340.post120661825196447087..comments2023-04-12T07:48:42.117-04:00Comments on Kundan Singh: Translating H.264 between Flash Player and SIP/RTPKundan Singhhttp://www.blogger.com/profile/10408946176930869078noreply@blogger.comBlogger8125tag:blogger.com,1999:blog-13033340.post-72117500648276678752012-07-17T17:14:19.460-04:002012-07-17T17:14:19.460-04:00Hi
Great article... i am not programer and i almos...Hi<br />Great article... i am not programer and i almost understand....<br /><br />i do live rtmp streaming, i look for link aggregation and bonding but its quite inefficient or very expensive solutions... i need to send one rtmp stream over multiple nics or 3g/4g modems... for redudency and bandwidth addition of connections...<br />so, one question: based on p2p-sip can it be possible to get an application at encoder splitting packets and dispatch upload up to all connection according there eficiency and at server side an application reordering packets or frames before streaming...?<br /><br />thanks<br /><br />DanielDaniel Tremblayhttps://www.blogger.com/profile/06638302695319556219noreply@blogger.comtag:blogger.com,1999:blog-13033340.post-88255803128551066972012-01-27T08:12:59.034-05:002012-01-27T08:12:59.034-05:00Hi Kundan
I have sent a mail to your gmail ID req...Hi Kundan<br /><br />I have sent a mail to your gmail ID requesting the flash client11 tcpdump traces. Can you plz provide me that?<br /><br />Regards<br />SrikanthSrikanth Vavilapallihttps://www.blogger.com/profile/00543682434776503377noreply@blogger.comtag:blogger.com,1999:blog-13033340.post-34047748655314828082012-01-25T14:12:21.181-05:002012-01-25T14:12:21.181-05:00HI Andre,
From what I recall, the packetization m...HI Andre,<br /><br />From what I recall, the packetization mode of 1 allows fragmentation and aggregation nal-types too. But Flash Player does not generate/receive that as per my previous experiment. Since the packetization mode is applicable only for RTP payload packetization (datagram oriented), it does not apply to RTMP (stream oriented) where the payload can be of much larger size so you don't need fragmentation or aggregation. <br /><br />As per RFC6184 and given the current payload format of H264/RTMP, it is possible to translate to/from RTP packetization mode=1. But I don't think it is possible to translate to/from RTP packetization mode=0 (assuming MTU of 1500 bytes).<br /><br />It will be interesting to see how RTMFP does packetization. Most likely it uses the chunk encoding mechanism already available in the protocol instead of RFC6184-based fragmentation and aggregation.<br /><br />I didn't see any configuration to force flash to send small nal-sizes instead.<br /><br />Thanks!Kundan Singhhttps://www.blogger.com/profile/10408946176930869078noreply@blogger.comtag:blogger.com,1999:blog-13033340.post-39276530148576593672012-01-25T14:03:16.799-05:002012-01-25T14:03:16.799-05:00Hi Srikanth,
Regarding the traces, if you can sen...Hi Srikanth,<br /><br />Regarding the traces, if you can send me an email to kundan10@gmail.com I will remember to send the tcpdump traces.<br /><br />"..when translated to RTP the entire NAL may _not_ fit in a single MTU packet (for video)"<br /><br />The delimiter is just a separator for access unit which is probably a single frame to display. So it is not violating the decoder I would day. The timing information is optional so can be ignored. But since the SIP side does not send these nal-types I drop those when translating from RTMP to RTP. But I am not thoroughly familiar with the H.264 specification so cannot say if these nal-types violate the standard. You could try sending these nal-type to SIP and see if things still work fine...<br /><br />Thanks!Kundan Singhhttps://www.blogger.com/profile/10408946176930869078noreply@blogger.comtag:blogger.com,1999:blog-13033340.post-30856638193919974732012-01-25T07:31:26.621-05:002012-01-25T07:31:26.621-05:00HI Kundan,
first of all, great work you have here...HI Kundan,<br /><br />first of all, great work you have here!!<br /><br />If I understand correctly, flash will only send packets in packetizationMode="1". Right?<br /><br />Or is there any configuration to force flash to send small packets instead?<br /><br />Andrénakibhttps://www.blogger.com/profile/11989436811057021086noreply@blogger.comtag:blogger.com,1999:blog-13033340.post-29613658361239677822012-01-25T05:02:51.038-05:002012-01-25T05:02:51.038-05:00Thanks Kundan
Will you be able to share with us t...Thanks Kundan<br /><br />Will you be able to share with us the wireshark traces for a RTMP h264 video call capturing the packets from a flash player 11?<br /><br />So as per your article, flash player11 embed only one h264 picture data NAL in one RTMP message and when translated to RTP the entire NAL may fit in a single MTU(<1500byte) packet rt?<br /><br />I understood from ur article that the flash client is sending 3 NALs (delimiter, timing and picture data NALs) in every RTMP message. Is it as per any h264 specification? I thought if RTMP and RTP clients negotaite the h264 profile and levels, why as an intermediate entity still need to bother about payload translation?Srikanth Vavilapallihttps://www.blogger.com/profile/00543682434776503377noreply@blogger.comtag:blogger.com,1999:blog-13033340.post-91285505585079549172012-01-24T13:42:39.687-05:002012-01-24T13:42:39.687-05:00In my experiment I found that Flash Player does no...In my experiment I found that Flash Player does not display the picture if all NALUs of a frame are not present in a single RTMP message. Bria 3's RTP stack splits a frame into multiple RTP packets with last packet containing marker=true for a frame. So collecting all RTP packets in a queue until marker=true means that you will have complete frame with all the NALUs to compose the RTMP message payload. A single RTP packet from Bria 3 contains one NALU which may contain only partial frame.<br /><br />My experiment was before 11.2 so things might have changed since then.Kundan Singhhttps://www.blogger.com/profile/10408946176930869078noreply@blogger.comtag:blogger.com,1999:blog-13033340.post-1712082401809118232012-01-24T12:23:49.892-05:002012-01-24T12:23:49.892-05:00Hi Kundan
Thanks for explaining the translation p...Hi Kundan<br /><br />Thanks for explaining the translation procedure in detail. Appreciate your efforts..I have a question on RTP to RTMP direction. Why does the translator need to queue all the RTP packets until the packet with marker=1 is received. As per your article I understood that flash clients only support single NAL packetization mode rt? So if each RTP packet received with a single NAL/aggregated/fragmented packetization mode gets translated in to a single NAL RTMP packet and sent to flash client, will the flash client not decode the NALs?<br /><br /><br />SrikanthSrikanth Vavilapallihttps://www.blogger.com/profile/00543682434776503377noreply@blogger.com