一、文件路徑

vite提取node_modules_文件路徑

這是輸入文件的路徑,把它改成自己文件的路徑

二、輸出視頻信息

vite提取node_modules_f5_02

輸出的文件路徑,可以改成自己的路徑

vite提取node_modules_文件路徑_03

輸出的文件信息,可以根據自己的需求加。然後我就是根據我們老師的要求來了。

ffmpeg自帶的一個函數其實就是可以輸出視頻的幾乎所有信息了。你也可以自己試試看

av_dump_format(pFormatCtx,0,filepath,0);

三、提取並輸出視頻

vite提取node_modules_文件路徑_04

改成自己的路徑。然後文件格式就是按照代碼就可以了

vite提取node_modules_文件路徑_05

yuv文件的話,我的代碼是yuv420的格式。因為人眼對亮度比較敏感,所以uv數據可以適當減少。如果你對畫質的要求比較高,可以改一下

四、提取並輸出音頻信息

vite提取node_modules_主函數_06

vite提取node_modules_主函數_07

同樣的,需要改路徑。

然後我是提取了pcm和wav兩種,所以兩邊都要改。

肯定會有人有疑問:我可不可以只要wav不要pcm呀?

不可以。因為這個代碼的wav是用pcm轉換的。pcm格式的話文件頭部不要加信息,wav文件頭部是有整個文件信息的。如果你不想要的話,可以把上面的

int simplest_pcm16le_to_wave(const char* pcmpath, int channels, int sample_rate, const char* wavepath)

函數和主函數結合一下。就可以直接輸出wav的音頻啦