FFmpegavcodec_flush_buffers調(diào)用說明

????在網(wǎng)絡(luò)環(huán)境中,傳輸數(shù)據(jù)用UDP經(jīng)常有丟包,而丟包很容易造成FFmpeg×××緩沖的幀數(shù)增加。解決辦法是:隔一段時間清空×××緩存, 如何理解?

摘自
http://blog.csdn.net/qq_35044535/article/details/77775910?locationNum=7&fps=1

摘抄以供備份
ffmpeg中解碼的API之前的是avcodec_decode_video2()和avcodec_decode_audio4(),現(xiàn)在使用avcodec_send_packet()/ avcodec_receive_frame()來代替原有的接口。


API與編碼/解碼和音頻/視頻非常相似,工作原理如下:
1、像往常一樣設(shè)置和打開AVCodecContext。

2、輸入:
?1)、對于解碼,請調(diào)用avcodec_send_packet()以在AVPacket中給出×××原始的壓縮數(shù)據(jù)。
?2)、對于編碼,請調(diào)用avcodec_send_frame()為編碼器提供包含未壓縮音頻或視頻的AVFrame。 在這兩種情況下,建議對AVPackets和AVFrames進行重新計數(shù),否則libavcodec可能必須復(fù)制輸入數(shù)據(jù)。 (libavformat總是返回引用計數(shù)的AVPackets,av_frame_get_buffer()分配引用計數(shù)的AVFrames)

3、在循環(huán)中接收輸出。 定期調(diào)用avcodec_receive _ *()函數(shù)并處理其輸出:
?1)、對于解碼,請調(diào)用avcodec_receive_frame()。 成功后,它將返回一個包含未壓縮音頻或視頻數(shù)據(jù)的 AVFrame。
?2)、對于編碼,請調(diào)用avcodec_receive_packet()。 一旦成功,它將返回帶有壓縮幀的AVPacket。 重復(fù)調(diào)用,直到它返回AVERROR(EAGAIN)或錯誤。 AVERROR(EAGAIN)返回值意味著需要新的輸入數(shù)據(jù)才能返回新的輸出。
在解碼或編碼開始時,編×××可能會接收多個輸入幀/數(shù)據(jù)包而不返回幀,直到其內(nèi)部緩沖區(qū)被填充為止。

結(jié)束流情況。 這些需要“刷新”編×××,因為編×××可能在內(nèi)部緩沖多個幀或數(shù)據(jù)包以實現(xiàn)性能或不必要(考慮B幀)。
pkt==NULL is treated differently from pkt.size==0? (pkt==NULL means get more output, pkt.size==0 is a flush/drain packet) 處理如下:
1、發(fā)送NULL到avcodec_send_packet()(解碼)或avcodec_send_frame()(編碼)函數(shù),而不是有效的輸入。 這將進入“flush”模式。

2、在循環(huán)中調(diào)用avcodec_receive_frame()(解碼)或avcodec_receive_packet()(編碼),直到返回AVERROR_EOF。
3、在再次解碼之前,必須使用avcodec_flush_buffers()重新編碼。

我們提供的服務(wù)有:成都網(wǎng)站制作、成都網(wǎng)站建設(shè)、微信公眾號開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認(rèn)證、寧海ssl等。為超過千家企事業(yè)單位解決了網(wǎng)站和推廣的問題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的寧海網(wǎng)站制作公司

分享名稱:FFmpegavcodec_flush_buffers調(diào)用說明
網(wǎng)頁地址:http://www.muchs.cn/article18/ghocdp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供建站公司、外貿(mào)網(wǎng)站建設(shè)網(wǎng)站內(nèi)鏈、虛擬主機、手機網(wǎng)站建設(shè)網(wǎng)頁設(shè)計公司

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設(shè)