ffmpeg 常用命令
合并文件
1 | ffmpeg -i "concat:file_name1.ts | file_name2.ts" -c copy_out.ts |
在视频文件中提取图片
1 | ffmpeg -i output.ts '%d.png' |
H264 转 yuv
1 | ffmpeg -i SampleEis2Venc.H264 -pix_fmt nv12 -vcodec rawvideo -an SampleRaw.yuv |
单张图片生成 H264 视频
1 | ffmpeg -ss 0 -t 16 -f lavfi -i color=c=0x000000:s=1920x1080:r=25 -i test.jpg -filter_complex "[1:v]scale=1920:1080[v1];[0:v][v1]overlay=0:0[outv]" -map [outv] -c:v libx264 SampleRaw.H264 -y |
横向拼接两个视频
1 | ffmpeg -i out1.mp4 -i out2.mp4 -filter_complex "[0:v]pad=iw*2:ih*1[a];[a][1:v]overlay=w" out.mp4 |
竖屏拼接两个视频
1 | ffmpeg -i out1.mp4 -i out2.mp4 -filter_complex "[0:v]pad=iw:ih*2[a];[a][1:v]overlay=0:h" out.mp4 |
横向拼接三个视频
1 | ffmpeg -i out1.mp4 -i out2.mp4 -i out3.mp4 -filter_complex "[0:v]pad=iw*3:ih*1[a];[a][1:v]overlay=w[b];[b][2:v]overlay=2.0*w" out.mp4 |
竖向拼接三个视频
1 | ffmpeg -i out1.mp4 -i out2.mp4 -i out3.mp4 -filter_complex "[0:v]pad=iw:ih*3[a];[a][1:v]overlay=0:h[b];[b][2:v]overlay=0:2.0*h" out.mp4 |
四个视频 2x2 排列拼接
1 | ffmpeg -i out1.mp4 -i out2.mp4 -i out3.mp4 -i out4.mp4 -filter_complex "[0:v]pad=iw*2:ih*2[a];[a][1:v]overlay=w[b];[b][2:v]overlay=0:h[c];[c][3:v]overlay=w:h" out.mp4 |
MP3 转 WAV
1 | ffmpeg -i test.mp3 -f s16le -acodec pcm_s16le -ac 2 -ar 48000 output.wav |
- -acodec pcm_s16le pcm_s16le 16bits 编码器
- -f s16le 保存为 16bits pcm 格式
- -ac 2 双声道
- -ar 48000 48000 采样率
Video 提取音频文件
1 | ffmpeg -i video.rmvb -f wav -ar 48000 audio.wav |