视频音频合并
视频音频合并,以视频时间为主,音频短了循环
方法1:混音,视频权重0,volume调节音量,aloop无限循环,duration:first为第一个素材的长度
ffmpeg -i video.mp4 -i audio.mp3 -filter_complex "1:avolume=0.5a1;a1aloop=loop=-1:size=2e+09a2;0:aa2amix=inputs=2:duration=first:weights='0 1'a" -map 0:v -map "a" out.mp4
有的音频:first不起作用,需要-t截止时间
方法2:替换音频
ffmpeg -an -i video.mp4 -stream_loop -1 -i audio.mp3 -af volume=0.5 -shortest -fflags +shortest -y out.mp4
有的音频shortest不管用,需要-t截止时间
合并视频的时候加字幕
ffmpeg -i /video/0.ts -i /video/4.ts -filter_complex "0:v:00:a:01:v:01:a:0concat=n=2:v=1:a=1vouta;outvdrawtext=text='字幕Text':fontcolor=#ffffff:fontsize=192:fontfile=/conf/msyhbd.ttc:x=(w-text_w)/2:y=(h-text_h)/1.5:enable='between(t\,0\,1)'dv" -map dv -map outa -vsync 2 -y out.mp4
视频合并,有的视频没有音频,找到没有音频的视频,用虚拟音频,concat=n=的数量不包括虚拟音频
./ffmpeg -i /video/0.mp4 -i /video/1.mp4 -i /video/无音频视频.mp4 -f lavfi -t 0.1 -i anullsrc -filter_complex "0:v:00:a:01:v:01:a:02:v:03:aconcat=n=3:v=1:a=1outvouta" -map outv -map outa -vsync 2 -y out.mp4
切割视频
按关键帧切割视频
ffmpeg.exe -i video.m4v -c copy -f segment -reset_timestamps 1 video\output-%d.mp4
按帧切割视频
./ffmpeg -i ./video/video.m4v -vf "select=between(n\,0\,52),setpts=N/FRAME_RATE/TB" -af "aselect='between(n\,0\,52)',asetpts=N/SR/TB" -y ./video/output.mp4
./ffmpeg -i ./video/video.m4v -vf "trim=start_frame=0:end_frame=52+1,setpts=PTS-STARTPTS" -an -y ./video/output1.mp4
音频渐入渐出
音频音量+渐入渐出,st起始时间,d持续时间
ffmpeg -an -i video.m4v -stream_loop -1 -i 3m.mp3 -filter_complex 1:avolume=0.5a1;a1afade=t=in:st=0:d=3,afade=t=out:st=29:d=3 -t 32 -vcodec copy -y out.mp4