1.編碼流程圖
2.相關(guān)模塊及函數(shù)
2.1 編碼器相關(guān)API
avcodec_find_encoder: 根據(jù)編碼器ID查找編碼器
avcodec_alloc_context3:創(chuàng)建編碼器上下文
avcodec_open2:打開編碼器
2.2 復(fù)用器相關(guān)API
avformat_alloc_output_context2:為輸出格式創(chuàng)建復(fù)用器上下文
avformat_new_stream:創(chuàng)建音視頻流
avcodec_parameters_from_context:將編碼器上下文中的參數(shù)拷貝到音視頻流中的編碼器參數(shù)中AVCodecParameters
avio_open:正式打開輸出文件
avformat_write_header:寫入頭部信息
av_interleaved_write_frame(),對編碼后的 AVPacket 進行封裝,然后寫入文
av_write_trailer:寫入視頻結(jié)尾信息
2.3 重采樣相關(guān)API
swr_alloc_set_opts:設(shè)置重采樣配置參數(shù),并且分配重采樣器上下文
swr_init:讓重采樣相關(guān)配置生效
swr_convert:對視頻幀進行轉(zhuǎn)換
swr_free:釋放重采樣器上下文
注意點
av_packet_alloc得到的數(shù)據(jù)必須要設(shè)置stream_index,不然stream_index都默認為0了
packet的pts,dts,duration時間基都要轉(zhuǎn)換為對應(yīng)所在stream的time_base
編碼器上下文的flags要設(shè)置一下AV_CODEC_FLAG_GLOBAL_HEADER這個參數(shù),不然的話很多視頻播放器是播放不了的,尤其是視頻流
這個參數(shù)是將全局頭部信息(SPS,PPS)放在extradata指針中,而不是每一個關(guān)鍵幀中文章來源:http://www.zghlxwxcb.cn/news/detail-554193.html
簡單的編碼流程相關(guān)代碼
碼云倉庫鏈接
文章來源地址http://www.zghlxwxcb.cn/news/detail-554193.html
到了這里,關(guān)于音視頻編碼實戰(zhàn)-------pcm+yuv數(shù)據(jù)轉(zhuǎn)成MP4的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!