閱讀912 返回首頁    go 技術社區[雲棲]


利用ffmpeg做視頻解碼的順序

這幾天在實驗室搗鼓著用ffmpeg做視頻解碼,終於把數據解出來了,雖然還沒有做顯示部分,不知道解碼解得對不對,但料想是不會有什麼問題了.回頭看看這幾天的工作,其間也遇到了不少問題,主要還是對ffmpeg解碼過程不熟悉,現總結了ffmpeg解碼的順序大致如下:
1.初始化解碼器:avcodec_init();
2.注冊所有格式和解碼器:av_register();
3.打開文件:av_open_input_file(filename);
4.取出數據流信息:av_find_stream_info();
5.判斷數據流是否為視頻,並提取器編碼信息:AVCodec->codec_type == CODE_ID_VIDEO;
6.根據編碼信息尋找相應的解碼器:avcodec_find_decoder(AVCodecContext->codec_id);
7.打開視頻解碼器:avcodec_open();
8.為視頻幀分配內存以存儲解碼後的圖片:avcodec_alloc_frame()
9.確認緩衝區的大小並分配緩衝空間:avpicture_get_size(); avpicture_fill();
10.開始解碼直至所有幀均被讀出:avcodec_decode_video();

最後更新:2017-04-03 16:48:59

  上一篇:go 漢字轉0 1點陣
  下一篇:go html中設置某個區域手動上下滾動