[導讀]一.音視頻同步的原理 mp4v2內(nèi)部采用一套時間刻度基準,由我們自己設定,不一定是采用我們常用的1秒有1000個單位(毫秒)。可能是1秒里有90000個單位或80000個單位。音頻和視頻可以采用
一.音視頻同步的原理 mp4v2內(nèi)部采用一套時間刻度基準,由我們自己設定,不一定是采用我們常用的1秒有1000個單位(毫秒)??赡苁?秒里有90000個單位或80000個單位。音頻和視頻可以采用不同的時間刻度基準,只是為方便區(qū)分,大都采用不同的刻度。 我們在每次向mp4文件寫數(shù)據(jù)時(調(diào)用函數(shù)MP4WriteSample),就需要考慮上一次寫數(shù)據(jù)和這一次寫數(shù)據(jù)之間的時間間隔,把這個間隔換算成mp4v2內(nèi)部的時間刻度基準間隔值(duration),然后mp4v2按照這個刻度基準間隔值(duration)把這一次數(shù)據(jù)放在對應的位置上。例子說明:用時間戳實時修改mp4v2里的上下幀間隔對應的ticks值。1.mp4v2庫初始化時?音頻使用48000刻度基準,視頻使用90000刻度基準。不采用固定幀間隔對應的ticks(duration)。①H264--視頻初始化 MP4AddH264VideoTrack(MP4File,TimeScale, MP4_INVALID_DURATION,width, height, spsBuf[1], spsBuf[2], spsBuf[3], 3); 第二個參數(shù)TimeScale的值是90000(也可以是別的值,在計算上下幀對應的ticks值時,需要使用這個刻度基準)。第三個參數(shù)值采用MP4_INVALID_DURATION,意思是我們使用變化的ticks,也就是函數(shù)MP4WriteSample里的第5個參數(shù)。如果幀與幀間隔值比較固定,也可以把第三個參數(shù)值寫成固定的對應ticks,比如每秒固定有25幀數(shù)據(jù),那么第三個參數(shù)值可以是:duration= (1/25)秒/(1/90000) = 36000;duration = (timestamp-lasttimestamp)/(1/timescale)②.Audio--音頻初始化 MP4AddAudioTrack(MP4File, TIMESCALE,MP4_INVALID_DURATION , MP4_MPEG4_AUDIO_TYPE); 第二個參數(shù)TIMESCALE的值是48000(也可以是別的值,在計算上下幀對應的ticks值時,需要使用這個刻度基準。很多人用采樣率,雖然是建議,但容易產(chǎn)生概念混淆。這個值我們把它設置成1000都可以)。第三個參數(shù)值采用MP4_INVALID_DURATION,同理①。2.在向mp4文件實時寫數(shù)據(jù) 利用音視頻的時間戳間隔換算來變化的ticks。(向文件寫的第一幀數(shù)據(jù)需再優(yōu)化處理,否則mp4文件無法單個循環(huán)播放)。我使用AudioDuration代表音頻數(shù)據(jù)上下幀對應的ticks值;使用VideoDuration代表視頻數(shù)據(jù)上下幀對應的ticks值。 ①向mp4文件寫的第一幀數(shù)據(jù)需要注意。 我寫第一幀數(shù)據(jù)的ticks值采用了固定值(隨意的經(jīng)驗值): vedio使用MP4WriteSample(MP4File, VideoId, (const uint8_t *)buf, (int)(pbuf - buf),3600,0,true); audio使用MP4WriteSample(MP4File, VideoId, (const uint8_t *)buf, (int)(pbuf - buf), 400+VideoDuration,0,true) ②.向mp4文件寫其他幀數(shù)據(jù)時,視頻和音頻上下幀間隔對應的ticks值使用公式: Duration = (timestamp-lasttimestamp)/(1/timescale)二.備注: ①.模數(shù)轉換,在模擬采樣音頻的時候,1幀(數(shù)據(jù)包)音頻包含1024(1024是底層硬件進行模數(shù)轉換時使用的固定值,大都用這個數(shù)值)個采樣。例如使用48k的音頻采樣,那么1秒就有48000/1024個幀,約47幀。這些數(shù)據(jù)包按時間先后順序和視頻數(shù)據(jù)包安放在一起。所以會發(fā)現(xiàn)一包音視頻數(shù)據(jù)中,有1幀視頻和2-3幀音頻。 而在嵌入式內(nèi)部對這些數(shù)據(jù)處理(比如向mp4文件寫數(shù)據(jù))是一種純數(shù)字化的處理,和采樣率關系已經(jīng)不大。 ②.在使用時間戳實時修改mp4v2里的上下幀間隔對應的ticks值這種方式時,發(fā)現(xiàn)在關閉文件時需要等很久才成功、形成可播放的mp4文件(或形成的mp4文件無法播放)。我們可以參照mp4v2庫的源碼添加打印,依次跟蹤,解決問題。 但我發(fā)現(xiàn)在移植mp4v2源碼到嵌入式海思平臺時,修改配置項時使用命令CC=arm-hisiv100nptl-linux-gcc CXX=arm-hisiv100nptl-linux-g++ ./configure --host=arm-hisiv100nptl-linux --prefix=/usr/local/mp4v2 --disable-option-checking --disable-debug --disable-optimize --disable-fvisibility --disable-gch --disable-largefile --disable-util --disable-dependency-tracking --disable-libtool-lock,編譯生成的庫用到設備里,就不會產(chǎn)生無法立刻形成mp4文件問題。具體移植方法參考我另一個博客文章“mp4v2源碼編譯并移植到海思平臺”.三.其他函數(shù)說明 許多函數(shù)說明可以參考File.h中的注釋解釋。 ①創(chuàng)建文件時, tsThis->m_pMP4File = MP4CreateEx(filename,MP4_CREATE_64BIT_DATA,1,1,0,0,0,0); MP4CreateEx的第二個參數(shù),標記允許文件總大小超過64位的數(shù)據(jù)。我理解的是,允許單個mp4文件的容量超過2^32KB=4GB。 ②關閉文件時, MP4Close(tsThis->m_pMP4File,MP4_CLOSE_DO_NOT_COMPUTE_BITRATE); 第二個參數(shù),在關閉文件時,不計算整個文件的大小,這樣可以更快關閉文件。
本站聲明: 本文章由作者或相關機構授權發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權益,請及時聯(lián)系本站刪除。
LED驅動電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。
關鍵字:
驅動電源
在工業(yè)自動化蓬勃發(fā)展的當下,工業(yè)電機作為核心動力設備,其驅動電源的性能直接關系到整個系統(tǒng)的穩(wěn)定性和可靠性。其中,反電動勢抑制與過流保護是驅動電源設計中至關重要的兩個環(huán)節(jié),集成化方案的設計成為提升電機驅動性能的關鍵。
關鍵字:
工業(yè)電機
驅動電源
LED 驅動電源作為 LED 照明系統(tǒng)的 “心臟”,其穩(wěn)定性直接決定了整個照明設備的使用壽命。然而,在實際應用中,LED 驅動電源易損壞的問題卻十分常見,不僅增加了維護成本,還影響了用戶體驗。要解決這一問題,需從設計、生...
關鍵字:
驅動電源
照明系統(tǒng)
散熱
根據(jù)LED驅動電源的公式,電感內(nèi)電流波動大小和電感值成反比,輸出紋波和輸出電容值成反比。所以加大電感值和輸出電容值可以減小紋波。
關鍵字:
LED
設計
驅動電源
電動汽車(EV)作為新能源汽車的重要代表,正逐漸成為全球汽車產(chǎn)業(yè)的重要發(fā)展方向。電動汽車的核心技術之一是電機驅動控制系統(tǒng),而絕緣柵雙極型晶體管(IGBT)作為電機驅動系統(tǒng)中的關鍵元件,其性能直接影響到電動汽車的動力性能和...
關鍵字:
電動汽車
新能源
驅動電源
在現(xiàn)代城市建設中,街道及停車場照明作為基礎設施的重要組成部分,其質量和效率直接關系到城市的公共安全、居民生活質量和能源利用效率。隨著科技的進步,高亮度白光發(fā)光二極管(LED)因其獨特的優(yōu)勢逐漸取代傳統(tǒng)光源,成為大功率區(qū)域...
關鍵字:
發(fā)光二極管
驅動電源
LED
在LED照明技術日益普及的今天,LED驅動電源的電磁干擾(EMI)問題成為了一個不可忽視的挑戰(zhàn)。電磁干擾不僅會影響LED燈具的正常工作,還可能對周圍電子設備造成不利影響,甚至引發(fā)系統(tǒng)故障。因此,采取有效的硬件措施來解決L...
關鍵字:
LED照明技術
電磁干擾
驅動電源
開關電源具有效率高的特性,而且開關電源的變壓器體積比串聯(lián)穩(wěn)壓型電源的要小得多,電源電路比較整潔,整機重量也有所下降,所以,現(xiàn)在的LED驅動電源
關鍵字:
LED
驅動電源
開關電源
LED驅動電源是把電源供應轉換為特定的電壓電流以驅動LED發(fā)光的電壓轉換器,通常情況下:LED驅動電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。
關鍵字:
LED
隧道燈
驅動電源
LED驅動電源在LED照明系統(tǒng)中扮演著至關重要的角色。由于LED具有節(jié)能、環(huán)保、長壽命等優(yōu)點,使得LED照明在各個領域得到廣泛應用。然而,LED的電流、電壓特性需要特定的驅動電源才能正常工作。本文將介紹常用的LED驅動電...
關鍵字:
LED驅動電源
led照明
LED驅動電源是把電源供應轉換為特定的電壓電流以驅動LED發(fā)光的電源轉換器,通常情況下:LED驅動電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。
關鍵字:
LED
驅動電源
高壓工頻交流
種種跡象都在表明,半導體行業(yè)或已提前進入寒冬時期,越來越多的廠商開始扛不住了……
關鍵字:
LED
半導體
驅動電源
崧盛股份9日發(fā)布投資者關系活動記錄表,就植物照明發(fā)展趨勢、行業(yè)壁壘等問題進行分享。植物照明未來市場需求廣闊崧盛股份指出,植物照明將會走向長期產(chǎn)業(yè)領域。主要原因有三:第一,LED植物照明賦能終端種植更具有經(jīng)濟價值。由于LE...
關鍵字:
崧盛股份
驅動電源
在當今高度發(fā)展的技術中,電子產(chǎn)品的升級越來越快,LED燈技術也在不斷發(fā)展,這使我們的城市變得豐富多彩。 LED驅動電源將電源轉換為特定的電壓和電流,以驅動LED發(fā)光。通常情況下:LED驅動電源的輸入包括高壓工頻交流電(即...
關鍵字:
LED
驅動電源
高壓直流
人類社會的進步離不開社會上各行各業(yè)的努力,各種各樣的電子產(chǎn)品的更新?lián)Q代離不開我們的設計者的努力,其實很多人并不會去了解電子產(chǎn)品的組成,比如LED電源。
關鍵字:
LED
驅動電源
低壓直流
隨著科學技術的發(fā)展,LED技術也在不斷發(fā)展,為我們的生活帶來各種便利,為我們提供各種各樣生活信息,造福著我們?nèi)祟?。LED驅動電源實際上是一種電源,但是它是一種特定的電源,用于驅動LED發(fā)射帶有電壓或電流的光。 因此,LE...
關鍵字:
LED
驅動電源
電流
LED燈作為一種新型節(jié)能和無污染光源,由于其特有的發(fā)光照明特性,在現(xiàn)代照明應用中發(fā)揮著革命性的作用。作為 LED 照明產(chǎn)業(yè)鏈中最為核心的部件之一,LED 驅動電源的驅動控制技術所存在的可靠性低、成本高等典型問題一直制約著...
關鍵字:
多路
LED
驅動電源
隨著社會的快速發(fā)展,LED技術也在飛速發(fā)展,為我們的城市的燈光煥發(fā)光彩,讓我們的生活越來越有趣,那么你知道LED需要LED驅動電源嗎?那么你知道什么是LED驅動電源嗎?
關鍵字:
LED
開關電源
驅動電源
早前有新聞稱,Cree在2018年開始宣布轉型高科技半導體領域,并一邊逐漸脫離照明與LED相關業(yè)務,一邊持續(xù)投資半導體。在今日,Cree宣布與SMART Global Holdings, Inc.達成最終協(xié)議,擬將LED...
關鍵字:
cree
led照明