原创 avformat_open_input代碼剖析

        今天看一下ffmpeg裏面avformat_open_input這個函數,我個人認爲這個函數算是在ffmpeg中最重要的函數了,因爲其實在執行了這個函數之後,基本上所有的文件信息都就出來了。比如這一段流裏面有幾股流,每一股

原创 ffmpeg下讀取內存數據並解析

ffmpeg裏讀取文件是最基礎的操作,但是在很多行業裏面,讀取文件的操作實際作用的意義不大。還是讀取內存的操作作用大一些。其兩個之間主要的差距主要是在avformat_open_input的參書中的AVFormatContext->pb裏

原创 解決VS2010下av_register_all程序中斷退出的問題

起因是這樣的,本來想在我的VS2010上利用ffmpeg寫點東西,但是代碼才寫了一行,編譯通過但是運行之後就報如下問題,程序自動退出了。代碼和現象如下: #include <stdio.h> #include <iostream> u

原创 C++下如何正確的讀取整個文件

#include<iostream> #include <stdlib.h> using namespace std; #define MAXLENTH 2048 int main() { char fileUrl[100] =

原创 100行代碼實現ffmpeg下讀取文件幀

話不多說,直接上代碼。 #include <stdio.h> #include <iostream> using namespace std; extern "C" { #include "libavcodec/avcodec

原创 WINDOWS下使用ffmpeg庫報錯“無法打開包括文件:“inttypes.h”: No such file or directory”解決辦法

 IDE:VS2010 ffmpeg版本:4.2 報錯: 解決辦法: 1、進入到報錯的記錄裏面,也就是common.h 註釋掉這個頭文件,然後編譯通過。 2、在頭文件裏面增加幾個文件_mingw.h、inttypes.h、stdin

原创 C++中關於static的思考(一)

在複習過程中static是一個最簡單也最常見的知識點。而且各種資料都是有這個點的。我在想:各種面試都有這個點,應該絕對不是一個習慣,或者是這個比較好考,裏面應該是有很多知識點。下面我希望通過幾篇文章把這個東西說的清楚一點。 照慣例,要深入

原创 過年呆在家的一點感覺

        因爲疫情,難得在家裏過了一次正月十五。確實是人這一輩子有可能只有這一次的體驗。因爲跟家裏人接觸的時間很長,足足是平時的好多倍,所以一直有很多感觸,想在這裏寫幾個話題。         1、關於“死亡”。         家

原创 關於C++實現類外不能訪問私有數據的理解

        最近在寫簡單的寫點練手的代碼,其中有一個就是自己寫一個String類,能夠實現構造函數、賦值構造函數、符號函數重載以及析構函數。順便提一句,這個問題如果作爲面試應屆生的話,還是很不錯的一個問題。代碼如下: class Z

原创 談談對於C++函數指針和模板的理解

本文想講解一下如下幾個比較容易混淆的概念,希望讓其好理解。 1、指針函數、函數指針 2、指針數組、數組指針 3、函數模板、模板函數 4、類模板、模板類 5、指針常量、常量指針。 首先我們先講解第1和第2兩個概念,這兩個概念是可以放到一起去

原创 關於學習的一點見解

        最近因爲疫情的事情,無法上班,一直在看一些基礎的書,看了發現有很多感觸。第一點,C++真的是如果需要深入學習的話東西是真的多,一個static和const就可以扯出很多東西,最後扯到了編譯器和鏈接器的工作原理,我會這幾天把

原创 說說C++的頭文件

     這次講講C++的頭文件吧,第一個問題是頭文件的內部到底是什麼?其實本質上來說頭文件是不存在,當程序在進行編譯的時候,其實第一步就把頭文件裏面所有的內容直接拷貝到源文件裏面去了,這樣頭文件其實就消失了。因爲這個拷貝就會導致了第二個

原创 函數指針和函數指針取地址

       故事的起因是這樣的,最近在學習ffmpeg,發現一個小夥伴在寫ffmpeg取內存數據的時候是這樣寫的:   avio_alloc_context(aviobuffer, 32768, 0, NULL, &read_p

原创 C++知識體系(全學完就精通)

和一些C++大牛討要學習技巧,被建議說一定要對C++要系統的學習,要不然學習的效果總是不好,於是找了以下的知識體系。後面會對這些體系加上自己的理解的。就當自己的一個記錄啦~會先從C開始,處理基礎再學習C++的一些知識點。

原创 boost使用之編譯庫及遇到的問題

    最近因爲在學習網絡編程相關的東西,準備學習一下boost,畢竟原生的網絡編程太麻煩。看了一下其實windows下想使用起來很簡單,就是下載庫,然後運行腳本,然後運行exe庫就出來。在把頭文件和庫的目錄包含進去就可以了。在此詳細記錄