³ö É« ×Ê Ñ¶¡¡¡¡¿ì ÈË Ò» Ïß
¡¡ Ê×Ò³¡¡|¡¡Êг¡ÐÐÇé¡¡|¡¡ÐÂÎŶ¯Ì¬¡¡|¡¡²úÆ·ÆÀ²â¡¡|¡¡Ó²¼þÎÄÝÍ¡¡|¡¡ÊýÂëʱÉС¡|¡¡ò°½­Â·¶þÊÖ¡¡|¡¡ÂÛ̳¡¡|¡¡Ð¡ÐÜÍƼöµê
¡¡Ê×Ò³ ¡ú Òµ½ç¶¯Ì¬
¡¡
ÎÄÕÂËÑË÷: Àà±ð:
¡¡

¡¾ÈÚÔÆ·ÖÎö¡¿ÈÚÔÆʵʱÒôÊÓƵ SDK ¶ÔÖÇÄÜÓ²¼þµÄÊÓƵÊÊÅä

¡¾Òµ½ç¶¯Ì¬¡¿¡¡×÷Õß:ÐÂΟå

¡¡

¡¾ÎÄÕ¼ò½é¡¿
¡¾ÈÚÔÆ·ÖÎö¡¿ÈÚÔÆʵʱÒôÊÓƵ SDK ¶ÔÖÇÄÜÓ²¼þµÄÊÓƵÊÊÅä ...... ......

ÈÚÔÆʵʱÒôÊÓƵ SDK »á¶ÔÊÐÃæÉϵĸ÷ÀàÖÇÄÜÓ²¼þÉ豸£¬ÌرðÊǸ÷ÖÖÀàÐÍ¡¢¸÷ÖÖ°æ±¾µÄÊÖ»ú½øÐÐÊÊÅ䣬ÒÔÈ·±£ SDK µÄÎȶ¨ÐÔ¡£µ«²»Í¬ÓÚÊÖ»úµÄÊÊÅ䣬ÖÇÄÜÓ²¼þµÄÊÊÅäÓкܶ಻֮ͬ´¦£º

1.ºÜ¶àÖÇÄÜÓ²¼þµÄÔËÐÐÄÚ´æ¡¢CPU ÐÔÄܵÈÓ²¼þÅäÖÃÆÕ±é±ÈÊÖ»úÐÔÄܵͣ»

2.²¿·Ö³§ÉÌÔÚÖÇÄÜÓ²¼þµÄÉãÏñÍ·°²×°·½Ïò¡¢¸öÊý¡¢ÀàÐͺÍÊÖ»úÓнϴó²îÒì¡£

ËùÒÔÔÚÊÊÅäÎÊÌâÉÏ£¬ÖÇÄÜÓ²¼þÐèÒªµ¥¶À½øÐÐÑéÖ¤ÌÖÂÛ£¬ÏÂÃæ¾ÍΪ´ó¼Ò½øÐÐÏêϸ½âÎö¡£

ÊÓƵ²É¼¯ÊÊÅä

²É¼¯·½Ê½ÊÊÅä

ÈÚÔÆʵʱÒôÊÓƵ SDK ÉãÏñÍ·²É¼¯Êý¾ÝÌṩ Texture ºÍ YUV(NV21) Á½ÖÖ·½Ê½£¬Í¨¹ýÉèÖò»Í¬²É¼¯·½Ê½¿ÉÒÔ»ñÈ¡µ½ Texture ID »ò byte ԭʼÊÓƵÁ÷Êý¾Ý¡£Texture ID ÓÃÀ´±íʾͼÏñÕÕƬ»òÕßһϵÁеÄÊý¾Ý£¬Ê¹ÓÃÎÆÀí¿ÉÒÔʹÎïÌåÕ¹ÏÖ¸ü¶àµÄϸ½Ú£¬YUV ÔòÊÇÉãÏñÍ·²É¼¯³öµÄ NV21 ¸ñʽÊý¾Ý¡£

YUV ÊÇÒ»ÖÖ²ÊÉ«±àÂë¸ñʽ£¬¿ÉÒÔ½«ÆäÀí½âΪԭʼÊÓƵÁ÷Êý¾Ý£¬Ö÷ÒªÓÃÔÚÊÓƵ¡¢Í¼Ðδ¦ÀíÁ÷Ë®ÏßÖÐ(pipeline)¡£Ïà¶ÔÓÚ RGB ÑÕÉ«¿Õ¼ä£¬Éè¼Æ YUV µÄÄ¿µÄ¾ÍÊÇΪÁ˱àÂë¡¢´«Êä¸ü·½±ã£¬¼õÉÙ´ø¿íÕ¼ÓúÍÐÅÏ¢³ö´í¡£

ÈÚÔÆʵʱÒôÊÓƵ SDK ÖÐĬÈϲÉÓà Texture ·½Ê½²É¼¯£¬µ±±¾¶ËʹÓø÷½Ê½²É¼¯Ê±£¬±àÂëÆ÷ĬÈϽ«Ê¹Óà android.media.MediaCodecInfo.CodecCapabilities.COLOR_FormatSurface(0x7F000789) ÑÕÉ«¿Õ¼ä½øÐбàÂ룬Èç¹û¶Ô¶Ë²»Ö§³Ö¸ÃÑÕÉ«¿Õ¼äµÄÇé¿öÏ£¬¿ÉÄܻᵼÖ½âÂ뻨ÆÁ»òÕß½âÂëʧ°ÜÎÊÌ⣬¿ª·¢Õß¿ÉÒÔÔÚ¼ÓÈë·¿¼ä֮ǰµ÷Óà RongRTCConfig.Builder#enableVideoTexture ·½·¨ÉèÖÃÊÇ·ñ²ÉÓà texture ·½Ê½²É¼¯¡£

ÉãÏñÍ·ÊÊÅä

ÔÚÓö¼ûÖÇÄÜÓ²¼þÉãÏñÍ·°²×°·½Ïò¡¢¸öÊý¡¢ÀàÐ͵¼ÖµÄÊÓƵ²É¼¯ÎÊÌâʱ£¬¿ÉÒÔͨ¹ýÈÚÔÆʵʱÒôÊÓƵSDKÖÐ RongRTCConfig.Builder ÀàµÄÉèÖ÷½·¨ setCameraDisplayOrientation ºÍ setCustomizedCameraParameter£¬ÐÞ¸ÄÉãÏñ»ú²É¼¯µÄ½Ç¶ÈºÍÖ±½ÓÉèÖøø android.hardware.Camera#setParameters(Parameters params) ÅäÖÃÐÅÏ¢¡£

ÈÚÔÆʵʱÒôÊÓƵ SDK »áͨ¹ý android.hardware.Camera.getNumberOfCameras() ·½·¨»ñÈ¡µ½¿ÉÓõÄÉãÏñÍ· ID£¬Ä¬ÈÏ»á´ò¿ªÇ°ÖÃÉãÏñÍ·£¬¶ÔÓÚÐèÒª´ò¿ªÓãÑÛ¾µÍ·»òÕß´îÔضà¸öÉãÏñÍ·Ó²¼þÉ豸³¡¾°ÖУ¬¿ÉÒÔʹÓÃ

RongRTCCapture.getInstance().startCameraCapture ´ò¿ª¡¢Çл»£»

RongRTCCapture.getInstance().switchCamera Ö¸¶¨ ID µÄÉãÏñÍ·¡£

µ±ÖÇÄÜÓ²¼þ´øÓÐ USB ÉãÏñÍ·»ò USB Âó¿Ë·ç£¬²¢ÇÒ°²×¿ÏµÍ³ÎÞ·¨Ê¶±ðÆäÍâÖÃÉ豸ʱ£¬µ÷ÓÃÉÏÎÄ·½·¨½«ÎÞ·¨´ò¿ªÓ²¼þÉ豸£¨¶Ô¶Ë½«ÎÞ·¨¹Û¿´±¾¶ËÊÓƵ£©£¬ÕâÖÖÇé¿ö£¬ÍƼöʹÓÃÈÚÔÆʵʱÒôÊÓƵ SDK ·¢²¼×Ô¶¨ÒåÊÓƵÁ÷¹¦ÄÜ¡£

¶þ¡¢ÊÓƵ±à½âÂëÊÊÅä

ÈÚÔÆÒôÊÓƵ SDK Ö§³Ö H.264 ±à½âÂëÆ÷£¬ÒÔ¸ßѹËõ¡¢¸ßÖÊÁ¿ºÍÖ§³Ö¶àÖÖÍøÂçµÄÁ÷ýÌå´«ÊäÖø³Æ£¬Í¬Ê±Ò²ÊÇ MPEG-4 µÚÊ®²¿·Ö£¬ÊÇÓÉITU-TÊÓƵ±àÂëר¼Ò×飨VCEG£©ºÍISO/IEC¶¯Ì¬Í¼Ïñר¼Ò×飨MPEG£©ÁªºÏ×é³ÉµÄÁªºÏÊÓƵ×飨JVT£¬Joint Video Team£©Ìá³öµÄ¸ß¶ÈѹËõÊý×ÖÊÓƵ±à½âÂëÆ÷±ê×¼£¬Õâ¸ö±ê׼ͨ³£±»³Æ֮ΪH.264/AVC¡£

ʹÓÃÈÚÔÆÒôÊÓƵ SDK ʱ£¬¿ÉÒÔÉèÖñàÂëÆ÷ÑÕÉ«¿Õ¼ä¡¢±àÂëµÈ¼¶¡¢±àÂëÖ¡ÂÊ¡¢±àÂë¹Ø¼üÖ¡¼ä¸ôʱ¼ä¡¢±àÂëÆ÷ÂëÂÊ¿ØÖÆģʽµÈÅäÖÃÐÅÏ¢£¬ÒÔ½â¾öÉ豸±à½âÂëµ¼ÖµÄÎÊÌâ¡£

±àÂëÑÕÉ«¿Õ¼ä

ÈÚÔÆ RTCLib SDK ÖÐÉãÏñÍ·²É¼¯Êý¾Ý²ÉÓõÄÑÕÉ«¸ñʽΪ NV21£¬ËüÊôÓÚ YUV420 ¸ñʽ£¬Èç¹ûÖÇÄÜÓ²¼þ³§É̶¨ÖÆÁËÑÕÉ«¿Õ¼ä£¬»áµ¼ÖÂÈÚÔÆ SDK ÄÚ²¿´¦ÀíÑÕÉ«¿Õ¼äÂß¼­ºÍÉ豸ËùÖ§³ÖÑÕÉ«¿Õ¼ä²»·ûºÏ£¬³öÏÖ±àÂ뱨´í¡¢¶Ô¶Ë½âÂëʧ°Ü¡¢¶Ô¶Ë¹Û¿´»¨ÆÁµÈÏÖÏó¡£Óö¼û´ËÎÊÌ⣬¿ª·¢Õß¿ÉÒÔʹÓà RongRTCConfig.Builder#setHardWareEncodeColor ·½·¨Ð޸ıàÂëÑÕÉ«¿Õ¼äÀ´½â¾ö¡£

±àÂëµÈ¼¶

ÓÉÓÚÊÓƵ±àÂëºóÏÔʾµÄÊý¾ÝÖÊÁ¿Æ«µÍ£¬ÎªÁ˵÷ÕûÖÊÁ¿£¬¾ÍÐèÒªÉèÖñàÂëµÈ¼¶ level¡¢profile¡£ÈÚÔÆ SDK ĬÈÏʹÓà android.media.MediaCodecInfo.CodecProfileLevel.AVCProfileBaseline £¬¿ª·¢ÕßÒ²¿ÉÒÔͨ¹ý RongRTCConfig.Builder#enableHardWareEncodeHighProfile ·½·¨½«ÆäÉèÖÃΪ android.media.MediaCodecInfo.CodecProfileLevel.AVCProfileHigh£¬AVCProfileHigh Ëù¶ÔÓ¦µÄ±àÂëµÈ¼¶Îª android.media.MediaCodecInfo.CodecProfileLevel.AVCLevel3£¬AVCProfileHigh Ïà¶Ô AVCProfileBaseline ²ÉÓÃÁ˸ü¸ß¼¶µÄѹËõÌØÐÔ£¬ÕâÒâζ×ŶԶËÔÚ½âÂëʱҲÐèÒªÓ²¼þ¸ü¸ßµÄÐÔÄÜ£¬²ÉÓà AVCProfileBaseline ÊÇÒòΪÆä¼æÈÝÐÔ¸ü¸ß¡£°²×¿Ô´ÂëÖÐ 7.0 °æ±¾Ö®Ç°Ä¬ÈÏʹÓà AVCProfileBaseline £¬7.0 ²ÅÐÞ¸ÄÁ˸ÃÂß¼­¡£

°²×¿ 6.0 Ô´Âë(android/6.0.1_r16/xref/frameworks/av/media/libstagefright/ACodec.cpp)Ƭ¶ÎÈçÏ£º

°²×¿ 7.0 Ô´Âë(android/7.0.0_r31/xref/frameworks/av/media/libstagefright/ACodec.cpp)´úÂëƬ¶ÎÈçÏ£º

±àÂëÂëÂÊ¿ØÖÆģʽ

¶ÔÓÚÐèÒª´«Êä¸ßÖÊÁ¿ÊÓƵÁ÷µÄ³¡¾°£¬³ýÁËÉèÖ÷ֱæÂÊ¡¢Ö¡ÂÊ¡¢ÂëÂÊÌá¸ßÊÓƵÖÊÁ¿Í⣬»¹¿ÉÒÔ¿ØÖƱàÂëÂëÂÊ£¬ÈÚÔÆ SDK ĬÈÏʹÓà CBR £¬¿ª·¢Õß¿ÉÒÔʹÓÃÒôÊÓƵ SDK µÄ RongRTCConfig.Builder#setHardWareEncodeBitrateMode ·½·¨ÐÞ¸ÄģʽÉèÖ᣸ÃÊôÐÔ°²×¿ 5.0 ²Å¿ªÊ¼Ö§³Ö²ÎÊýÉèÖã¬ÒÔÏÂÊǶÔÈýÖÖģʽµÄ½éÉÜ£º

±àÂë¹Ø¼üÖ¡¼ä¸ôʱ¼ä

H.264 ±ê×¼ÖÐÓÐ Instantaneous Decoding Refresh£¨IDR£¬¼´Ê±½âÂëˢУ¬ÒÔÏÂ³Æ I Ö¡£©¡£H.264 ͼÏñÒÔÐòÁÐΪµ¥Î»½øÐÐ×éÖ¯£¬Ò»¸öÐòÁÐÊÇÒ»¶ÎͼÏñ±àÂëºóµÄÊý¾ÝÁ÷£¬¸ÃÐòÁÐÒÔ I Ö¡¿ªÊ¼£¬µ½ÏÂÒ»¸ö I Ö¡½áÊø¡£Á½¸ö I Ö¡Ö®¼äΪ¶à¸ö P Ö¡(Predictive-frame)»ò B Ö¡(Bi-directional predicted frames)£¬ÉèÖõıàÂë¹Ø¼üÖ¡¼ä¸ôʱ¼ä¾ÍÊÇ IDR ¼ä¸ôʱ¼ä¡£

I Ö¡£ºÍ¨³£ÊÇÿ¸ö GOP(Group Of Picture)  (MPEG ËùʹÓõÄÒ»ÖÖÊÓƵѹËõ¼¼Êõ) µÄµÚÒ»¸öÖ¡£¬I ֡ͼÏñ²ÉÓÃÖ¡ÄÚ±àÂ뷽ʽ£¬¼´Ö»ÀûÓÃÁ˵¥Ö¡Í¼ÏñÄڵĿռäÏà¹ØÐÔ£¬¶øûÓÐÀûÓÃʱ¼äÏà¹ØÐÔ¡£I ֡ʹÓÃÖ¡ÄÚѹËõ£¬²»Ê¹ÓÃÔ˶¯²¹³¥£¬ÓÉÓÚ I Ö¡²»ÒÀÀµÆäËüÖ¡£¬ËùÒÔÊÇËæ»ú´æÈ¡µÄÈëµã£¬Í¬Ê±ÊǽâÂëµÄ»ù×¼Ö¡¡£I Ö¡Ö÷ÒªÓÃÓÚ½âÂëÆ÷µÄ³õʼ»¯£¬ÒÔ¼°½ÚÄ¿µÄÇл»ºÍ²åÈ룬I ֡ͼÏñµÄѹËõ±¶ÊýÏà¶Ô½ÏµÍ£¬I ֡ͼÏñÊÇÖÜÆÚÐÔ³öÏÖÔÚͼÏñÐòÁÐÖеģ¬³öÏÖƵÂÊ¿ÉÓɱàÂëÆ÷Ñ¡Ôñ£¬I ֡ѹËõ¿ÉÈ¥µôÊÓƵµÄ¿Õ¼äÈßÓ࣬¶ø B¡¢P ÔòÊÇΪÁËÈ¥µôʱ¼äÈßÓà¡£

P Ö¡£ºÏòÇ°²Î¿¼Ö¡£¨µÚÒ»Ö¡Ö®ºóµÄÖ¡£¬Ö»´æÔÚºÍÇ°Ò»Ö¡µÄ²îÒ죬¿ÉÒÔÌá¸ßѹËõЧÂʺÍͼÏñÖÊÁ¿£©£¬Ñ¹Ëõʱֻ²Î¿¼Ç°Ò»¸öÖ¡£¬ÊôÓÚÖ¡¼ä±àÂ뷽ʽ£¨¼´Í¬Ê±ÀûÓÃÁË¿Õ¼äºÍʱ¼äÉϵÄÏà¹ØÐÔ£©£¬P ֡ͼÏñÖпÉÒÔ°üº¬Ö¡ÄÚ±àÂëµÄ²¿·Ö£¬¼´ P Ö¡ÖеÄÿһ¸öºê¿é¿ÉÒÔÊÇÇ°ÏòÔ¤²â£¬Ò²¿ÉÒÔÊÇÖ¡ÄÚ±àÂ룻Ëü²Î¿¼Ç°Ò»¸ö B Ö¡»ò I Ö¡À´½âÂë³öÒ»ÕÅÍêÕûµÄͼÏñ¡£

B Ö¡£ºË«Ïò²Î¿¼Ö¡£¬Ñ¹Ëõ²Î¿¼Ç°Ò»Ö¡ºÍºóÒ»Ö¡£¬ÊôÓÚÖ¡¼äѹËõ¼¼Êõ¡£Ñ¹Ëõ±È¸ß£¬Èç¹ûÍøÂç²»ºÃ£¬¶ÔʵʱҪÇó¸ßµÄ»°»áÒ»Ö±µÈ´ý£¬ÊµÊ±»¥¶¯Ö±²¥Ò»°ã²»Ê¹Óã¬ÖµµÃ×¢ÒâµÄÊÇ£¬ÓÉÓÚ B ֡ͼÏñ²ÉÓÃÁËδÀ´Ö¡×÷Ϊ²Î¿¼£¬Òò´Ë MPEG-2 ±àÂëÂëÁ÷ÖÐͼÏñÖ¡µÄ´«Êä˳ÐòºÍÏÔʾ˳ÐòÊDz»Í¬µÄ¡£

ÒòΪ H.264 ²ÉÓÃÁ˶àÖ¡Ô¤²â£¬ËùÒÔ I Ö¡Ö®ºóµÄ PÖ¡¿ÉÄÜ»á²Î¿¼ I ֮֡ǰµÄÖ¡£¬ÕâʹµÃÔÚËæ»ú·ÃÎʵÄʱºò²»ÄÜÒÔÕÒµ½ I Ö¡×÷Ϊ²Î¿¼Ìõ¼þ£¬ÒòΪ¼´Ê¹ÕÒµ½ÁË I Ö¡£¬I Ö¡Ö®ºóµÄÊý¾ÝÒ²ÓпÉÄܽⲻ³öÊý¾Ý£¬¶øIDR Ö¡¾ÍÊÇÒ»ÖÖÌØÊâµÄ I Ö¡£¨ÕâÒ»Ö¡Ö®ºóµÄËùÓвο¼Ö¡Ö»»á²Î¿¼IDR£¬¶ø²»»á²Î¿¼ÆäËûÇ°ÃæµÄÖ¡£©¡£ÔÚ½âÂëÆ÷ÖУ¬Ò»µ©ÊÕµ½ IDR Ö¡£¬¾Í»áÁ¢¼´ÇåÀí²Î¿¼Ö¡»º³åÇø£¬²¢½« IDR Ö¡×÷Ϊ±»²Î¿¼Ö¡¡£

ÈÚÔÆ SDK ÖйؼüÖ¡¼ä¸ôʱ¼äĬÈÏΪ 100 Ã룬¿ª·¢Õß¿ÉÒÔͨ¹ý RongRTCConfig.Builder#setHardWareEncodeKeyFrameInterval ·½·¨Ð޸ļä¸ôʱ¼ä£¬Èç¹û¸ÃÖµÉèÖùýС£¬»á¼Ó´óÍøÂçÁ÷Á¿ºÍ±à½âÂëѹÁ¦£»Èç¹û¹ý´ó£¬ÔÚÍøÂçÓв¨¶¯Çé¿öÏ£¬Í¼ÏñÖÊÁ¿»áϽµ¡£ÒÔÉϾÍÊÇÈÚÔÆÔÚʵʱÒôÊÓƵ SDK ¶ÔÖÇÄÜÓ²¼þÊÓƵÊÊÅä·½ÃæµÄһЩ¾­Ñ飬ϣÍûÄܶԿª·¢ÕßÅóÓÑÃÇÀí½âÖÇÄÜÓ²¼þµÄÊÊÅäÓÐËù°ïÖú¡£

2020Äê07ÔÂ13ÈÕ ÓÚÉϺ£

°æȨ×÷Æ· δ¾­Ðí¿É ÇëÎðתÔØ¡¡



¡¡

ÍøÓÑÆÀÂÛ (½ö¹©²Î¿¼Óë±¾Õ¾Á¢³¡ÎÞ¹Ø)


Çë·¢±íÄúµÄ¹Ûµã (¿ÉÒÔÄäÃû·¢±í£¬¼Ç¼IP£¬ÏÞ¶¨1000×ÖÄÚ)
¡¡
ÐÕÃû: ¡¡ÃÜÂë: ÐÂÓû§×¢²á
¡¡

Ïà¹ØÎÄÕ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¸ü¶àÏà¹ØÎÄÕ¿´ÕâÀï...

  • Î÷²¿Êý¾ÝÒÔÁìÏȵĴóÈÝÁ¿ÆóÒµ¼¶HDD¼¼Êõ£¬.. 2020.07.13
  • ÐÂÒ»´ú¿ó±Ò¿ªÊ¼¿¼ÑéÖÐÑë´¦ÀíÆ÷¡°Ó²ÊµÁ¦¡.. 2020.07.13
  • ÐÔÄÜÖØÆ÷£¡ AMDÈñÁúThreadripper 3970XÍ».. 2020.07.10
  • ¼Ç¼Óë×·Ñ°¡ª¡ª°ÅÀÙÎèÕߵĹÊÊ 2020.07.09
  • Í»ÆÆÄÚ´æÆ¿¾±£¬Ó¢ÌضûЯ»ªÎª´òͨÖÇÄܼÆËã.. 2020.07.09
  • ³¬Ô½×ÔÎÒ ³É¾ÍδÀ´ AMDÈñÁú3000XT¾©¶«ÉÏÊ.. 2020.07.08

  • ¡¡

    Copyright © 2003 - 2005 www.shbear.com .All Rights Received.