1. 程式人生 > >音視頻處理概要 markdown

音視頻處理概要 markdown

ann 流轉 編碼 put wave adt 最終 視頻處理 toa

最近要想辦法把錄制的音視頻進行拼接.

比方說此次錄制的視頻有三段,通過高清直播編碼器錄制,錄制下的標準為h.264

直接用ffmpeg簡單拼接,音頻會丟失,所以有了此次解決方案(有可能會繁瑣,簡單方案還在探索中)

1.將分段的文件各自提取音頻及視頻,音頻提取為wave流,視頻提取為ts.

視頻轉為標準格式 音頻轉為wav

這裏音頻參數需要查看下原始視頻文件中的音頻信息

查看文件信息命令:

ffmpeg -i 1.mp4

轉換命令:

ffmpeg -i 1.mp4 -c copy -bsf:v h264_mp4toannexb -f mpegts 1.ts

ffmpeg -i 1.mp4 -vn -ar 8000 -ac 1 -ab 64k -acodec pcm_alaw -f wav 1.wav

2.將wave流轉為mp3格式,進行合並,將ts視頻直接進行合並

ffmpeg -i 1.wav -f mp3 -acodec libmp3lame -y 1.mp3
ffmpeg -i "concat:1.mp3|2.mp3|3.mp3" -acodec copy output.mp3

ffmpeg -i "concat:1.ts|2.ts|3.ts" -acodec copy -vcodec copy -absf aac_adtstoasc output.mp4

3.將mp3格式音頻與合並後的ts視頻再次進行音視頻合並

錄像中音頻和視頻相差500毫秒, 這裏重新調整,讓音視頻對齊

ffmpeg -i output.mp3 -i output.mp4 -filter_complex "adelay=500|500" output_all.mp4 

4.得到最終的音視頻文件

output_all.mp4

其他

其中提取音頻為wave流在轉為mp3格式有種脫褲子放屁感覺

因為對ffmpeg命令不熟悉,準備系統查看下,看是否可以直接提取mp3音頻

準備將這套方案寫為腳本,進行自動化拼接.

音視頻處理概要 markdown