FFmpeg 系列文章目錄
【FFmpeg】Windows 搭建 FFmpeg 指令行運作環境
【FFmpeg】FFmpeg 相關術語簡介
【FFmpeg】FFmpeg 相關術語簡介 二
【FFmpeg】FFmpeg 幫助文檔使用
【FFmpeg】使用 FFmpeg 處理音視訊格式轉換流程
文章目錄
- FFmpeg 系列文章目錄
- 一、視訊格式轉換
-
- 1、x264 視訊格式轉換
- 2、x265 視訊格式轉換
- 二、視訊格式轉換流程
一、視訊格式轉換
1、x264 視訊格式轉換
使用 x264 壓縮格式 , 将原始 大小 1920x1040 大小的 mp4 格式的視訊轉為 960x520 的 flv 格式的視訊 ;
進入視訊所在目錄 , 執行如下指令 :
ffmpeg -i 1920x1040.mp4 -acodec copy -vcodec libx264 -s 960x520 960x520.flv
指令執行過程 :
轉換前的視訊資訊 :
轉換後的視訊資訊 :
2、x265 視訊格式轉換
使用 x265 壓縮格式 , 将原始 大小 1920x1040 大小的 mp4 格式的視訊轉為 960x520 的 mkv 格式的視訊 ;
進入視訊所在目錄 , 執行如下指令 :
ffmpeg -i 1920x1040.mp4 -acodec copy -vcodec libx265 -s 960x520 960x520.mkv
指令執行結果 :
轉換前的視訊資訊 :
轉換後的視訊資訊 :
二、視訊格式轉換流程
分析如下指令的詳細流程 :
ffmpeg -i 1920x1040.mp4 -acodec copy -vcodec libx264 -s 960x520 960x520.flv
将 1920x1040 大小的 mp4 格式的視訊檔案 , 使用 x264 編解碼器 , 轉為 960x520 大小的 flv 格式的視訊檔案 ;
藍色的是 檔案 / 中間産物 , 紅色的是過程 ;
輸入檔案 : 輸入 1920x1040 大小的 mp4 格式檔案 , 1920x1040.mp4 ;
解複用 : 使用 demuxer 解複用器 , 将輸入檔案進行解複用操作 , 從容器中分别将 AVC 視訊流 , AAC LC 音頻流取出 , 得到編碼資料包 ;
編碼資料包 : 該資料包中的音視訊資料都是編碼後的資料 , 不能直接使用 ; 編碼資料包中的視訊流資料是 AVC 編碼格式的 , 音頻流資料是 AAC LC 編碼格式的 ;
解碼 : 使用 decoder 解碼器 , 解碼 AVC 編碼的視訊流資料 , AAC LC 編碼的音頻流資料 , 得到解碼後的資料 ;
解碼後的資料幀 : 音頻資料是 PCM 采樣 , 視訊幀 資料是一張張 YUV 格式的圖檔 ;
幀處理 : 使用 filter 過濾器 處理 解碼後的資料幀 , 将其轉為 處理後的資料幀 ; 該過程中将視訊的分辨率進行了修改 , 分辨率從 1920x1040 轉為 960x520 ;
如果要修改視訊的相關參數 , 如 時間 , 幀率 , 都在該步驟進行操作 , 操作的主體一定是解碼後的資料幀 ;
處理後的資料幀 : 該資料幀是可以直接用于播放 ; 音頻資料是 PCM 采樣 , 視訊幀 資料是一張張 YUV 格式的圖檔 ;
編碼 : 使用 encoder 編碼器 , 将處理後的資料幀進行編碼 , 音頻從 PCM 采樣轉為 AAC LC 編碼格式 , 視訊從 YUV 圖檔編碼為 AVC 編碼格式 ,