日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

RTSP/RTMP播放端录像不可忽视的几个设计要点

發(fā)布時(shí)間:2025/3/12 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 RTSP/RTMP播放端录像不可忽视的几个设计要点 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

很多開發(fā)者提到,拉取的攝像機(jī)(一般RTSP流)或RTMP流,如果需要錄制,需要考慮哪些因素,本文以大牛直播SDK的Windows平臺(tái)拉流端錄像為例(github),做個(gè)簡(jiǎn)單的介紹:

1. 基礎(chǔ)文件名設(shè)定

一般來說,本地錄像的話,不可能每個(gè)文件單獨(dú)命名,這個(gè)時(shí)候,需要考慮如文件名前綴、文件名是否添加日期、是否添加時(shí)間幾個(gè)因素,以C#為例,具體接口定義如下:

/*如果三項(xiàng)都是0的話,將不能啟動(dòng)錄像*/[StructLayoutAttribute(LayoutKind.Sequential)]public struct NT_SP_RecorderFileNameRuler{public UInt32 type_; // 這個(gè)值目前默認(rèn)是0,將來擴(kuò)展用[MarshalAs(UnmanagedType.LPStr)] public String file_name_prefix_; // 設(shè)置一個(gè)錄像文件名前綴, 例如:daniulivepublic Int32 append_date_; // 如果是1的話,將在文件名上加日期, 例如:daniulive-2017-01-17public Int32 append_time_; // 如果是1的話,將增加時(shí)間,例如:daniulive-2017-01-17-17-10-36}/** 設(shè)置錄像文件名生成規(guī)則*/[DllImport(@"SmartPlayerSDK.dll", EntryPoint = "NT_SP_SetRecorderFileNameRuler", CallingConvention = CallingConvention.StdCall)]public static extern UInt32 NT_SP_SetRecorderFileNameRuler(IntPtr handle, ref NT_SP_RecorderFileNameRuler ruler);

2. 設(shè)置錄像目錄、單個(gè)錄像文件大小

這個(gè)不再贅述,設(shè)置錄像目錄是錄像的基礎(chǔ)操作,單個(gè)文件大小設(shè)定,可以更精細(xì)的控制單個(gè)文件size,一般建議單個(gè)文件不要過大,單次錄制,超過設(shè)定的size,將自動(dòng)切分保存到另外一個(gè)新的文件。

/** 設(shè)置本地錄像目錄, 必須是英文目錄,否則會(huì)失敗*/[DllImport(@"SmartPlayerSDK.dll")]public static extern UInt32 NT_SP_SetRecorderDirectory(IntPtr handle, [MarshalAs(UnmanagedType.LPStr)] String dir);/** 設(shè)置單個(gè)錄像文件最大大小, 當(dāng)超過這個(gè)值的時(shí)候,將切割成第二個(gè)文件* size: 單位是KB(1024Byte), 當(dāng)前范圍是 [5MB-800MB], 超出將被設(shè)置到范圍內(nèi)*/[DllImport(@"SmartPlayerSDK.dll")]public static extern UInt32 NT_SP_SetRecorderFileMaxSize(IntPtr handle, UInt32 size);

3. 音頻轉(zhuǎn)碼后錄像

一般來說,AAC格式更通用,設(shè)置錄像時(shí)音頻轉(zhuǎn)AAC編碼的開關(guān), 可以把比如speex, pcmu, pcma轉(zhuǎn)aac的后再錄像,確保錄制文件的audio格式更通用,轉(zhuǎn)碼會(huì)有一定的資源消耗。

/** 設(shè)置錄像時(shí)音頻轉(zhuǎn)AAC編碼的開關(guān), aac比較通用,sdk增加其他音頻編碼(比如speex, pcmu, pcma等)轉(zhuǎn)aac的功能.* is_transcode: 設(shè)置為1的話,如果音頻編碼不是aac,則轉(zhuǎn)成aac, 如果是aac,則不做轉(zhuǎn)換. 設(shè)置為0的話,則不做任何轉(zhuǎn)換. 默認(rèn)是0.* 注意: 轉(zhuǎn)碼會(huì)增加性能消耗*/[DllImport(@"SmartPlayerSDK.dll")]public static extern UInt32 NT_SP_SetRecorderAudioTranscodeAAC(IntPtr handle, Int32 is_transcode);

4. 更精細(xì)的音視頻錄像控制(純音頻、純視頻錄制)

這兩組接口設(shè)置的意義在于, 有些場(chǎng)景下可能不想錄制視頻,只想錄音頻,或是只錄制視頻、不錄制音頻,通過開放此類接口設(shè)定,讓開發(fā)者操作更靈活。

/** 設(shè)置是否錄視頻,默認(rèn)的話,如果視頻源有視頻就錄,沒有就沒得錄, 但有些場(chǎng)景下可能不想錄制視頻,只想錄音頻,所以增加個(gè)開關(guān)* * is_record_video: 1 表示錄制視頻, 0 表示不錄制視頻, 默認(rèn)是1*/[DllImport(@"SmartPlayerSDK.dll")]public static extern UInt32 NT_SP_SetRecorderVideo(IntPtr handle, Int32 is_record_video);/** 設(shè)置是否錄音頻,默認(rèn)的話,如果視頻源有音頻就錄,沒有就沒得錄, 但有些場(chǎng)景下可能不想錄制音頻,只想錄視頻,所以增加個(gè)開關(guān)** is_record_audio: 1 表示錄制音頻, 0 表示不錄制音頻, 默認(rèn)是1*/[DllImport(@"SmartPlayerSDK.dll")]public static extern UInt32 NT_SP_SetRecorderAudio(IntPtr handle, Int32 is_record_audio);

5. 容易被忽略的callback事件

第五條,錄像狀態(tài)反饋,是好多開發(fā)者容易遺忘的,錄像回調(diào)狀態(tài),可以很方便的告知上層開發(fā)者,什么時(shí)候開啟了錄像,什么時(shí)候結(jié)束了錄像,什么時(shí)候?qū)懭肓诵碌匿浵裎募?#xff0c;這樣便于上層邏輯開發(fā)人員,對(duì)錄制好的文件進(jìn)行二次編輯或處理。

/** 設(shè)置錄像回調(diào)接口*/[DllImport(@"SmartPlayerSDK.dll")]public static extern UInt32 NT_SP_SetRecorderCallBack(IntPtr handle,IntPtr call_back_data, SP_SDKRecorderCallBack call_back);

6. 開始錄像/停止錄像

不再贅述,有了以上5條的設(shè)計(jì),第六條,只要上層開發(fā)者按部就班的調(diào)用就好了。

/** 啟動(dòng)錄像*/[DllImport(@"SmartPlayerSDK.dll")]public static extern UInt32 NT_SP_StartRecorder(IntPtr handle);/** 停止錄像*/[DllImport(@"SmartPlayerSDK.dll")]public static extern UInt32 NT_SP_StopRecorder(IntPtr handle);

總結(jié):

以上是一個(gè)友好的RTSP、RTMP拉流錄像功能需要考慮的幾點(diǎn)設(shè)計(jì),遺憾的是,好多開發(fā)者之關(guān)注第六條,前五條或多或少的忽略了,除了常規(guī)的接口設(shè)計(jì)之外,錄像功能需要考慮的其他因素還很多,后續(xù)有機(jī)會(huì)再做進(jìn)一步分享。

創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)

總結(jié)

以上是生活随笔為你收集整理的RTSP/RTMP播放端录像不可忽视的几个设计要点的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 日本午夜精品理论片a级app发布 | 日本三级午夜理伦三级三 | 国产女人18水真多18精品一级做 | 国产精品一二 | 亚洲欧洲综合 | 欧美成人一区二区三区片免费 | 亚洲视频二 | 自拍偷拍色图 | av黄色免费在线观看 | 69成人网| 国产美女免费无遮挡 | 久综合 | 欧美人吸奶水吃奶水 | 99视频只有精品 | 国产精品人妻一区二区三区 | 国产精品极品白嫩 | 国产伦理在线观看 | 亚洲精品一区二区二区 | 亚洲最大的黄色网 | 能看的黄色网址 | 黑人导航 | 久草加勒比 | 国产天堂第一区 | 国产一级理论片 | 中文字幕人成人乱码亚洲电影 | 自拍偷拍色图 | 黄色一级在线观看 | 国产精品不卡一区二区三区 | 成人wwxx免费观看 | 亚洲伦理自拍 | 成人免费在线观看av | 91免费黄视频| 成人夜晚视频 | 最新色网址 | 亚洲一区二区三区欧美 | 国产私拍视频 | 免费又黄又爽又色的视频 | 国产精品久久久久久久久久辛辛 | 热久久国产精品 | 中文在线中文资源 | 大肉大捧一进一出好爽视频 | 黄色免费在线网址 | 亚洲精品第二页 | 最新av| 国产啪视频 | 国产丝袜一区二区三区 | 淫欲av| 新国产视频 | 欧美日韩免费在线视频 | 二区视频在线 | 少妇被躁爽到高潮无码人狍大战 | 日韩一级免费毛片 | 91在线观看欧美日韩 | 操碰av | 久久久96人妻无码精品 | 中文字幕在线观看免费视频 | 成人深夜福利 | 天堂中文在线视频 | 下面一进一出好爽视频 | 欧美88av | 在线观看色视频 | 日韩av一区在线播放 | 精品丰满少妇一区二区三区 | 美女扒开腿让男人捅 | a级片久久 | 91婷婷射| 91精品网 | 亚洲熟乱 | 神马午夜在线观看 | 亚洲精品国产欧美 | 国产免费资源 | 欧美高清视频一区 | 一级艳片新婚之夜 | 亚洲免费在线视频 | 91社区视频 | 欧美性猛交7777777 | 天天爱天天色 | 欧美成人黑人猛交 | 午夜资源站 | 欧美一二三区视频 | 少妇户外露出[11p] | 韩国三级hd中文字幕叫床浴室 | 奇米激情| 亚洲欧美激情另类 | 久久黄色免费网站 | 亚洲国产aⅴ精品一区二区 日韩黄色在线视频 | 成 年 人 黄 色 大 片大 全 | 久久国产热视频 | 欧美在线视频网站 | 奇米影视第四色首页 | 五月婷婷丁香网 | 韩国伦理片在线看 | 国产麻豆一级片 | 一级性视频 | 久久99精品久久久久久园产越南 | 中文字幕偷拍 | a视频免费看 | 九九精品免费 | 少妇久久久久 |