最近要想办法把录制的音视频进行拼接.编码
比方说这次录制的视频有三段,经过高清直播编码器录制,录制下的标准为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音频
准备将这套方案写为脚本,进行自动化拼接.