文章目錄

一、使用 命令提取 音視頻 數(shù)據(jù)

1、提取音頻數(shù)據(jù) - 保留封裝格式

使用 命令 從 視頻數(shù)據(jù) 中 提取 音頻數(shù)據(jù) / 視頻數(shù)據(jù) 保留封裝格式 , 封裝格式 指的就是 封裝 視頻數(shù)據(jù) 的 容器 ;

一個 mp4 格式的視頻 , 其 封裝容器 就是 mp4 容器 , 其中 封裝了 h.264 格式的視頻數(shù)據(jù) 和 aac 格式的 音頻數(shù)據(jù) ;

執(zhí)行

ffmpeg -i input.mp4 -vn -acodec copy output.mp4

命令 , 從 .mp4 輸入文件中 , 提取 音頻數(shù)據(jù) 到 .mp4 輸出文件 , 封裝容器 仍然是 mp4 格式的容器 ;

提取出來 的數(shù)據(jù) 是 音頻數(shù)據(jù) , 完全可以存儲在 aac / mp3 / wav 等音頻封裝容器中 , 但是此處保留了 封裝容器格式 , 仍然將 音頻數(shù)據(jù) 存儲在 mp4 格式的容器 中 ;

上述命令解析 :

注意 : 輸出 音頻文件 , 需要 使用 - 參數(shù) , 設(shè)置 音頻編解碼器 ;

命令執(zhí)行過程 : 執(zhí)行

ffmpeg -i input.mp4 -vn -acodec copy output.mp4

執(zhí)行前 , .mp4 的 封裝容器 中的 音頻流 和 視頻流 格式如下 :

執(zhí)行上述命令后的 輸出文件 中 , 只有 AAC LC 格式的 音頻流 數(shù)據(jù) , 視頻流 數(shù)據(jù) 被忽略掉了 ;

2、提取視頻數(shù)據(jù) - 保留封裝格式

執(zhí)行

ffmpeg -i input.mp4 -an -vcodec copy output.mp4

命令 , 從 .mp4 輸入文件中 , 提取 視頻數(shù)據(jù) 到 .mp4 輸出文件 , 封裝容器 仍然是 mp4 格式的容器 ;

提取出來 的數(shù)據(jù) 是 視頻數(shù)據(jù) , 完全可以存儲在 h.264 視頻封裝容器中 , 但是此處保留了 封裝容器格式 , 仍然將 視頻數(shù)據(jù) 存儲在 mp4 格式的容器 中 ;

注意 : 輸出 視頻文件 , 需要 使用 - 參數(shù) , 設(shè)置 視頻編解碼器 ;

上述命令解析 :

命令執(zhí)行過程 : 執(zhí)行

ffmpeg -i input.mp4 -an -vcodec copy output.mp4

命令 ;

輸出文件 .mp4 中 , 只有 AVC 格式的視頻流數(shù)據(jù) , 音頻流數(shù)據(jù)被忽略掉了 ;

3、提取視頻數(shù)據(jù) - 保留編碼格式

執(zhí)行

ffmpeg -i input.mp4 -an -vcodec copy output.h264

命令 , 從 .mp4 輸入文件中 , 提取 視頻數(shù)據(jù) 到 .h264 輸出文件中 , 不再使用原來的封裝格式 ;

上述命令解析 :

執(zhí)行過程 : 執(zhí)行

ffmpeg -i input.mp4 -an -vcodec copy output.h264

命令過程 ;

轉(zhuǎn)換后的 H.264 格式的 輸出文件 中 , 只有一個 AVC 視頻流 數(shù)據(jù) ;

4、提取視頻數(shù)據(jù) - 重新編碼

執(zhí)行

ffmpeg -i input.mp4 -an -vcodec libx264 output.h264

命令 , 從 .mp4 輸入文件中 , 提取 視頻數(shù)據(jù) 到 .h264 輸出文件中 , 并使用 編解碼器重新進(jìn)行編碼 ;

上述命令解析 :

命令執(zhí)行過程 :

由于設(shè)置了 視頻編解碼器 , 涉及到 視頻重新編碼 , 該過程很耗時 , 下面是視頻重新編碼過程 ;

使用 視頻編解碼器 重新 編碼輸出的 H.264 文件 的 視頻信息 如下圖所示 :

5、提取音頻數(shù)據(jù) - 保留編碼格式

執(zhí)行

ffmpeg -i input.mp4 -vn -acodec copy output.aac

命令 , 從 .mp4 輸入文件中 , 提取 音頻數(shù)據(jù) 到 .aac 輸出文件中 , 不再使用原來的封裝格式 ;

上述命令解析 :

執(zhí)行過程 : 執(zhí)行

ffmpeg -i input.mp4 -vn -acodec copy output.aac

命令過程 ;

執(zhí)行完畢后 , .aac 輸出文件中 有一個 AAC LC 音頻流 數(shù)據(jù) , 這就是從 .mp4 視頻文件中提取的音頻流數(shù)據(jù) ;

6、提取音頻數(shù)據(jù) - 重新編碼

執(zhí)行

ffmpeg -i input.mp4 -vn -acodec libmp3lame output.mp3

命令 , 從 .mp4 輸入文件中 , 提取 音頻數(shù)據(jù) 并且進(jìn)行重新編碼 輸出 到 .mp3 文件中 , 不再使用原來的封裝格式 ;

上述命令解析 :

執(zhí)行過程 : 執(zhí)行

ffmpeg -i input.mp4 -vn -acodec libmp3lame output.mp3

命令過程 ;

提取 音頻流 數(shù)據(jù) 并 使用 編解碼器 進(jìn)行重新編碼后的 輸出文件信息如下 :