|
AnyChatÊÇÒ»Ì׿ª·ÅµÄÒôÊÓƵ¼´Ê±Í¨ÐŽâ¾ö·½°¸£¬ÔçÆڵİ汾ÒѾ¿ª·ÅÁËÔʼÊý¾ÝµÄÊäÈë¡¢Êä³ö½Ó¿Ú£º
1¡¢Í¨¹ý¿Í»§¶Ë»Øµ÷º¯Êý¿ÉÒÔÊä³öÓû§ÔʼµÄÊÓƵ²ÉÑùÖ¡Êý¾Ý£¨YUV¡¢RGB£©£ºÊÓƵÊý¾Ý»Øµ÷º¯Êý
2¡¢Í¨¹ýÍⲿÊý¾ÝÊäÈë½Ó¿Ú¿ÉÒÔÖ§³Ö½«ÍⲿµÄÊÓƵ֡´«¸øAnyChat½øÐбàÂ룺ÈçºÎʹÓÃÍⲿÒôÊÓƵÊý¾ÝÊäÈ빦ÄÜ£¿
¶ÔÓÚijЩÌض¨µÄ³¡ºÏ£¬ÉϲãÓ¦ÓÃÏ£Íû»ñÈ¡AnyChatÄÚºËÔʼµÄH.264±àÂëÊý¾Ý£¬»òÊÇÏ£Íû½«H.264±àÂëÖ®ºóµÄÊý¾Ý´«Êä¸øAnyChat£¬×ÔAnyChat r4268°æ±¾¿ªÊ¼ÌṩÁËÖ§³Ö£¬¸ÃÌØÐÔ½«¸øAnyChat´øÀ´¸ü´óµÄÁé»îÐÔ¡¢¿ÉÀ©Õ¹ÐÔ£¬°üÀ¨£º
1¡¢ÓÐÖúÓÚAnyChatÓëÆäËüƽ̨»¥Áª»¥Í¨Ê±½øÐÐÊý¾Ý½»»»£¬ÊµÏÖÓëÆäËüƽ̨µÄ¶Ô½Ó£¬ÈçSIPͨÐÅÖնˣ»
2¡¢Í¨¹ý±àд½ÓÈëÍøÒ³£¬¿ÉÒÔʵÏÖ¼à¿ØÉãÏñÍ·¡¢ÊÓƵµã²¥Æ½Ì¨µÈÊý¾ÝµÄ½ÓÈ룻
а汾Ôö¼Ó³£Á¿¶¨Ò壺BRAC_PIX_FMT_H264£¬API½Ó¿ÚûÓиı䡣
1¡¢µ±ÐèҪͨ¹ý»Øµ÷º¯Êý»ñÈ¡Óû§µÄH.264±àÂëÊý¾Ýʱ£¬¿ÉÒÔÔÚÉèÖûص÷º¯Êýʱ´«Èë³£Á¿£¬È磺- // ÉèÖûص÷º¯Êý
- BRAC_SetVideoDataExCallBack(BRAC_PIX_FMT_H264, OnVideoDataExCallBack, this);
- // »Øµ÷º¯ÊýʵÏÖ
- void CALLBACK OnVideoDataExCallBack(DWORD dwUserid, LPVOID lpBuf, DWORD dwLen, BITMAPINFOHEADER bmiHeader, DWORD dwTimeStamp, LPVOID lpUserValue)
- {
- }
¸´ÖÆ´úÂë 2¡¢µ±Ï£Íû½«±àÂëºóµÄH.264Êý¾Ý´«ÈëAnyChatʱ£¬¿ÉÒÔͨ¹ýÍⲿÊý¾ÝÊäÈë½Ó¿ÚÀ´ÊµÏÖ£¬È磺- // ³õʼ»¯
- BRAC_SetInputVideoFormat(BRAC_PIX_FMT_H264, 320, 240, 25, 0);
- // ´«ÈëÊý¾Ý
- BRAC_InputVideoData(lpH264Frame, dwSize, dwTimeStamp);
¸´ÖÆ´úÂë Ïà¹Ø˵Ã÷£º
1¡¢ÊäÈë¡¢Êä³öµÄH.264±àÂëÖ¡Êý¾Ý¾ùΪNALµ¥Ôª£¬°üº¬Ö¡Æðʼ±êÖ¾£º00 00 00 01 £¬ÇÒÿ´ÎÊäÈë¡¢Êä³öΪһ¸öNALµ¥Ôª£»
2¡¢¹Ø¼üÖ¡ÐèÒª°üº¬ÐòÁвÎÊý¼¯£¨SPS£ºSequence parameter set£©ºÍͼÏñ²ÎÊý¼¯£¨PPS£ºPicture parameter set£©£»
3¡¢Ê±¼ä´ÁΪºÁÃëÖµ£¬Á½¸öʱ¼ä´ÁÖ®²î±íʾÁ½¸öÖ¡µÄʱ¼ä¼ä¸ô£¨µ¥Î»£ººÁÃ룩
|
|