使用ffmpeg步驟


       av_register_all();//初始化ffmpeg庫,如果系統里面的ffmpeg沒配置好這里會出錯
        if (isNetwork) {
            //需要播放網絡視頻
            avformat_network_init();
        }
        avformat_open_input();//打開視頻文件
        avformat_find_stream_info();//查找文件的流信息
        av_dump_format();//dump只是個調試函數,輸出文件的音、視頻流的基本信息了,幀率、分辨率、音頻采樣等等
        for(...);//遍歷文件的各個流,找到第一個視頻流,並記錄該流的編碼信息
        sws_getContext();//根據編碼信息設置渲染格式
        avcodec_find_decoder();//在庫里面查找支持該格式的解碼器
        avcodec_open2();//打開解碼器
        pFrame=avcodec_alloc_frame();//分配一個幀指針,指向解碼后的原始幀
        pFrameRGB=avcodec_alloc_frame();//分配一個幀指針,指向存放轉換成RGB后的幀
        avpicture_fill(pFrameRGB);//給pFrameRGB幀加上分配的內存;
        while(true)
        {
            av_read_frame();//讀取一個幀(到最后幀則break)
            avcodec_decode_video2();//解碼該幀
            sws_getCachedContext()sws_scale();//把該幀轉換(渲染)成RGB
            SaveFrame();//對前5幀保存成ppm圖形文件(這個是自定義函數,非API)
            av_free_packet();//釋放本次讀取的幀內存
        }

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM