{"id":379,"date":"2011-06-10T17:01:15","date_gmt":"2011-06-10T09:01:15","guid":{"rendered":"http:\/\/www.myvoipapp.com\/blogs\/yxh\/?p=379"},"modified":"2019-02-12T20:11:54","modified_gmt":"2019-02-12T12:11:54","slug":"ilbc%e7%9b%b8%e5%85%b3%e8%af%b4%e6%98%8e","status":"publish","type":"post","link":"https:\/\/www.myvoipapp.com\/blogs\/yxh\/2011\/06\/10\/ilbc%e7%9b%b8%e5%85%b3%e8%af%b4%e6%98%8e\/","title":{"rendered":"iLBC\u76f8\u5173\u8bf4\u660e"},"content":{"rendered":"<p>\u5728\u4e24\u7bc7RFC\u6587\u6863\u4e2d\u5bf9iLBC\u6709\u6bd4\u8f83\u5168\u9762\u7684\u4ecb\u7ecd\uff1a<\/p>\n<p>1\u3001RFC3591 Internet Low Bit Rate Codec (iLBC) \u8fd9\u7bc7\u4e3b\u8981\u662f\u8bb2\u89e3iLBC\u7684\u57fa\u672c\u539f\u7406\uff0c\u975e\u8bed\u97f3\u5904\u7406\u9886\u57df\u7684\u4e13\u4e1a\u4eba\u58eb\u5f88\u96be\u770b\u5f97\u660e\u767d\u3002<\/p>\n<p>2\u3001RFC3952 Real-time Transport Protocol (RTP) Payload Format for internet Low Bit Rate Codec (iLBC) Speech \u8fdb\u884cRTP\u4f20\u8f93\u662f\u5fc5\u987b\u9075\u5b88\u7684\u89c4\u8303\uff0cVOIP\u9886\u57df\u4eba\u58eb\u57fa\u672c\u80fd\u770b\u660e\u767d\u3002<\/p>\n<p>\u7b80\u5355\u70b9\u8bf4\uff1aiLBC\u91c7\u75288KHZ\uff0c16bit\u91c7\u6837\uff0c\u4f46\u662f\u5206\u6210\u4e24\u79cd\u6a21\u5f0f\uff1a30ms\uff08\u6beb\u79d2\uff09\u6a21\u5f0f\u4ee5\u53ca20ms\uff08\u6beb\u79d2\uff09\u6a21\u5f0f\u3002\u6700\u521d\u53ea\u5b9a\u4e49\u4e8630ms\u6a21\u5f0f\uff0c\u540e\u6765\u8003\u8651\u5230\u7a84\u5e26\u7f51\u7edc\u4e22\u5305\u7684\u60c5\u51b5\uff0c\u589e\u52a0\u4e8620ms\u6a21\u5f0f\u3002\u76ee\u524d\u5927\u90e8\u5206\u8bbe\u5907\u591a\u91c7\u7528\u7684\u662f30ms\u6a21\u5f0f\u3002<\/p>\n<p>30ms\u6a21\u5f0f\u662f\u6307\u6bcf30ms\u53d1\u9001\u4e00\u5e27\uff0c\u5219\u6bcf\u5e27\u6570\u636e\u662f400bits \uff0850bytes\uff09\uff0c\u5982\u679c\u662f20ms\u4e00\u5e27\uff0c\u5219\u6bcf\u5e27\u6570\u636e\u662f304bits\uff0838bytes\uff09\u3002<\/p>\n<p>\u5728SDP\u63cf\u8ff0\u4e2d\uff0c\u5fc5\u987b\u660e\u786e\u6307\u660ecodec\u540d\u5b57\u662fiLBC\u3002<\/p>\n<p>\u5982\u679c\u662f20ms\u6a21\u5f0f\uff0c\u5fc5\u987b\u5728SDP\u4e2d\u660e\u786e\u6307\u660e\uff0c\u5426\u5219\u4f1a\u8ba4\u4e3a\u662f30ms\u6a21\u5f0f\u3002\u5728RFC\u6587\u6863\u4e2d\u6709\u5982\u4e0b\u63cf\u8ff0\uff1a<\/p>\n<p>If 20 ms frame size mode is used, remote iLBC encoder SHALL receive &#8220;mode&#8221; parameter in the SDP &#8220;a=fmtp&#8221; attribute by copying them directly from the MIME media type string as a semicolon separated with parameter=value, where parameter is &#8220;mode&#8221;, and values can be 0 and 20 (where 0 is reserved and 20 stands for preferred 20 ms frame size).\u00a0 An example of the media representation in SDP for describing iLBC when 20 ms frame size mode is used might be:<\/p>\n<p>m=audio 49120 RTP\/AVP 97<br \/>\na=rtpmap:97 iLBC\/8000<br \/>\na=fmtp:97<span style=\"color: #000000;\"><em> mode=20 <span style=\"color: #0000ff;\">&lt;&#8211; 30ms\u6a21\u5f0f\u4e2d\uff0c\u591a\u6570\u5382\u5bb6\u7684\u8bbe\u5907\u4e0d\u4f1a\u643a\u5e26\u8fd9\u4e2aattribute\u3002<\/span><br \/>\n<\/em><\/span><\/p>\n<p><span style=\"color: #000000;\">\u9700\u8981\u6ce8\u610f\u7684\u662fSDP\u534f\u5546\u4e0e\u4e00\u822c\u7684codec\u534f\u5546\u6709\u4e0d\u540c\uff0c\u5176\u4e2d\u6bd4\u8f83\u5173\u952e\u7684\u5c31\u662fptime\u4e0d\u80fd\u5e94\u7528\u5230iLBC\u7684\u534f\u5546\u4e2d\u3002iLBC\u603b\u662f\u91c7\u7528\u6700\u4f4e\u901f\u7387\u6a21\u5f0f\uff0c\u4f8b\u5982\uff0c\u53ea\u8981\u4e00\u65b9\u8981\u6c4230ms\u6a21\u5f0f\uff0c\u53cc\u65b9\u90fd\u5fc5\u987b\u4f7f\u752830ms\u6a21\u5f0f\uff1a<\/span><\/p>\n<p>That is, an offer of &#8220;mode=20&#8221; receiving an answer of &#8220;mode=30&#8221; will result in &#8220;mode=30&#8221; being used by both participants.\u00a0 Similarly, <em><span style=\"color: #0000ff;\">an offer of &#8220;mode=30&#8221; and an answer of &#8220;mode=20&#8221; will result in &#8220;mode=30&#8221; being used<\/span><\/em> by both participants.<\/p>\n<p><em>\u6ce8\u89e3\uff1a\u6211\u60f3\u53ef\u80fd\u5c31\u662f\u8fd9\u4e2a\u539f\u56e0\uff08\u5f53\u7136\uff0c\u4e5f\u6709\u5386\u53f2\u9057\u7559\u7684\u53ef\u80fd\uff09\uff0c\u5927\u5bb6\u90fd\u4e0d\u7ea6\u800c\u540c\u5730\u91c7\u752830ms\u6a21\u5f0f\uff0c\u907f\u514d\u5bf9\u5a92\u4f53\u8d44\u6e90\u7684\u91cd\u65b0\u8c03\u914d\u3002<\/em><\/p>\n<p>\u4e0d\u80fd\u4f7f\u7528ptime\u7684\u539f\u56e0\u5728\u4e8e\u4e00\u4e2aRTP\u5305\u4e2d\uff0c\u53ef\u80fd\u4f1a\u5c01\u88c5\u82e5\u5e72\u4e2aiLBC\u5305\uff0c\u8fd9\u79cd\u60c5\u51b5\u4e0bptime\u65e0\u6cd5\u8868\u8ff0\u7a76\u7adf\u662f\u54ea\u79cd\u6a21\u5f0f\uff1a<\/p>\n<p>Parameter ptime can not be used for the purpose of specifying iLBC operating mode, due to fact that for the certain values it will be impossible to distinguish which mode is about to be used (e.g., when ptime=60, it would be impossible to distinguish if packet is carrying 2 frames of 30 ms or 3 frames of 20 ms, etc.).<\/p>\n<p><em>\u6ce8\u89e3\uff1a\u5728\u4e00\u4e2aRTP\u5305\u4e2d\u5c01\u88c5\u591a\u4e2aiLBC\u5305\u7684\u65b9\u6cd5\uff0c\u5b9e\u5728\u8ba9\u4eba\u611f\u89c9\u591a\u6b64\u4e00\u4e3e\u3002\u5373\u6ca1\u6709\u51cf\u5c11\u6d41\u91cf\uff0c\u4e5f\u4e0d\u80fd\u964d\u4f4e\u4e22\u5305\u5bf9\u8bed\u97f3\u8d28\u91cf\u7684\u5f71\u54cd\uff0c\u53cd\u800c\u589e\u52a0\u4e86\u7f51\u7edc\u8bbe\u5907\u7684\u590d\u6742\u6027\u3002\u4ece\u5b9e\u9645\u5e94\u7528\u6765\u770b\uff0c\u4e5f\u6ca1\u6709\u4ec0\u4e48\u4eba\u4f1a\u91c7\u7528\u8fd9\u79cd\u65b9\u5f0f\u3002<\/em><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u5728\u4e24\u7bc7RFC\u6587\u6863\u4e2d\u5bf9iLBC\u6709\u6bd4\u8f83\u5168\u9762\u7684\u4ecb\u7ecd\uff1a 1\u3001RFC3591 Internet Low Bit Rate Codec (iLBC) \u8fd9\u7bc7\u4e3b\u8981\u662f\u8bb2\u89e3iLBC&#8230;<\/p>\n<p class=\"read-more\"><a class=\"btn btn-default\" href=\"https:\/\/www.myvoipapp.com\/blogs\/yxh\/2011\/06\/10\/ilbc%e7%9b%b8%e5%85%b3%e8%af%b4%e6%98%8e\/\"> Read More<span class=\"screen-reader-text\">  Read More<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[27],"tags":[136,137,138],"class_list":["post-379","post","type-post","status-publish","format-standard","hentry","category-27","tag-audio","tag-codec","tag-ptime"],"_links":{"self":[{"href":"https:\/\/www.myvoipapp.com\/blogs\/yxh\/wp-json\/wp\/v2\/posts\/379","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.myvoipapp.com\/blogs\/yxh\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.myvoipapp.com\/blogs\/yxh\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.myvoipapp.com\/blogs\/yxh\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.myvoipapp.com\/blogs\/yxh\/wp-json\/wp\/v2\/comments?post=379"}],"version-history":[{"count":6,"href":"https:\/\/www.myvoipapp.com\/blogs\/yxh\/wp-json\/wp\/v2\/posts\/379\/revisions"}],"predecessor-version":[{"id":1898,"href":"https:\/\/www.myvoipapp.com\/blogs\/yxh\/wp-json\/wp\/v2\/posts\/379\/revisions\/1898"}],"wp:attachment":[{"href":"https:\/\/www.myvoipapp.com\/blogs\/yxh\/wp-json\/wp\/v2\/media?parent=379"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.myvoipapp.com\/blogs\/yxh\/wp-json\/wp\/v2\/categories?post=379"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.myvoipapp.com\/blogs\/yxh\/wp-json\/wp\/v2\/tags?post=379"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}