最近要想辦法把錄製的音視頻進行拼接.編碼
比方說這次錄製的視頻有三段,經過高清直播編碼器錄製,錄製下的標準爲h.264spa
直接用ffmpeg簡單拼接,音頻會丟失,因此有了這次解決方案(有可能會繁瑣,簡單方案還在探索中)code
1 將分段的文件各自提取音頻及視頻,音頻提取爲wave流,視頻提取爲ts.視頻
視頻轉爲標準格式 音頻轉爲wavblog
這裏音頻參數須要查看下原始視頻文件中的音頻信息直播
查看文件信息命令:自動化
ffmpeg -i 1.mp4
轉換命令:class
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.ts|2.ts|3.ts" -acodec copy -vcodec copy -absf aac_adtstoasc output.mp4
3 將mp3格式音頻與合併後的ts視頻再次進行音視頻合併ffmpeg
錄像中音頻和視頻相差500毫秒, 這裏從新調整,讓音視頻對齊
ffmpeg -i output.wav -i output.mp4 -filter_complex "adelay=500|500" output_all.mp4
4 獲得最終的音視頻文件
output_all.mp4
其中提取音頻爲wave流在轉爲mp3格式有種脫褲子放屁感受
由於對ffmpeg命令不熟悉,準備系統查看下,看是否能夠直接提取mp3音頻
準備將這套方案寫爲腳本,進行自動化拼接.