6. 复合型FFmpeg命令行

6.1. 多路视频合成一路

使用1080p的4图像,以2*2方式合成为一个1080p视频

ffmpeg -hwaccel mxvid -c:v h264_mxvid -i xxx0.mp4 -hwaccel mxvid -c:v h264_mxvid -i xxx1.mp4 -hwaccel mxvid -c:v h264_mxvid -i xxx2.mp4 -hwaccel mxvid -c:v h264_mxvid -i xxx3.mp4 -filter_complex "[0:v]scale_metax=w=1920:h=1080[base];[0:v]scale_metax=w=960:h=540[video_1];[1:v]scale_metax=w=960:h=540[video_2];[2:v]scale_metax=w=960:h=540[video_3];[3:v]scale_metax=w=960:h=540[video_4];[base][video_1]overlay_metax=x=0:y=0[overlay1];[overlay1][video_2]overlay_metax=x=960:y=0[overlay2];[overlay2][video_3]overlay_metax=x=0:y=540[overlay3];[overlay3][video_4]overlay_metax=x=960:y=540" -c:v h264_mxenc -y -f mp4 xxx4.mp4

6.2. 一路视频转码多路

将1路视频转码为4路

ffmpeg -i xxx0.mp4 -map 0 -c:v hevc_mxenc -preset faster -rc vbr -b:v 1M -y output1.mp4 -map 0 -c:v hevc_mxenc -preset fast -rc vbr -b:v 2M -y output2.mp4 -map 0 -c:v hevc_mxenc -preset medium -rc vbr -b:v 2M -y output3.mp4 -map 0 -c:v hevc_mxenc -preset fast -rc crf -qp 23 -y output4.mp4

6.3. 使用PNG添加水印

ffmpeg -hwaccel mxvid -c:v h264_mxvid -i Bosphorus.mp4 -i 0023.png -filter_complex "[0:v]scale_metax=format=bgra[in0];[1:v]hwupload_metax,scale_metax=format=bgra [in1];[in0][in1]overlay_metax=x=960:y=540:b=1[ov3];[ov3]scale_metax=format=nv12" -c:v h264_mxenc -f mp4 -y BrosOver.mp4

6.4. 多路解码

ffmpeg -hwaccel metax -c:v h264_mxvid -i xxx1.mp4 -hwaccel metax -c:v h264_mxvid -i xxx2.mp4 -hwaccel metax -c:v h264_mxvid -i xxx3.mp4 -map 0:v -y xxx1out.yuv -map 1:v -f rawvideo -y xxx2out.yuv -map 2:v -f rawvideo -y xxx3out.yuv

6.5. 多路转码

ffmpeg -s 1920x1080 -pix_fmt nv12 -i 1.yuv -s 1920x1080 -pix_fmt nv12 -i 2.yuv -map 0 -c:v hevc_mxenc -preset medium -rc vbr -b:v 2M -r 30 -y 1.mp4 -map 1 -c:v hevc_mxenc -preset medium -rc vbr -b:v 2M -r 25 -y 2.mp4

6.6. 多路转码

ffmpeg -hwaccel mxvid -c:v h264_mxvid -i xxx1.mp4 -hwaccel mxvid -c:v h264_mxvid -i xxx2.mp4 -hwaccel mxvid -c:v h264_mxvid -i xxx3.mp4 -map 0 -c:v hevc_mxenc -preset medium -rc vbr -b:v 2M -r 30 -y 1.mp4 -map 1 -c:v hevc_mxenc -preset medium -rc vbr -b:v 2M -r 25 -y 2.mp4 -map 2 -c:v hevc_mxenc -preset medium -rc vbr -b:v 2M -r 25 -y 3.mp4