1.转码264
bash
ffmpeg -i [原视频.mp4] -vcodec h264 [输出视频.mp4]
2.视频流yuv数据抽取帧
bash
ffmpeg -f rawvideo -s:v [尺寸] -i "[视频源]" -f image2 -q 2 -r [帧数] [文件夹及文件名]
尺寸 : 例如 :640x360
视频源:例如: test.yuv
帧数: 例如:5
文件夹及文件名: 例如:2-5/%04d.png
bash
ffmpeg -f rawvideo -s:v 640x360 -i "1.yuv" -f image2 -q 2 -r 5 out/%04d.png
从1.yuv文件中抽取640*360尺寸的图片,储存在out文件夹中,名字按照0001.png ,0002.png 递增。
yuv数据必须指定尺寸,因为他是源数据,没有行列概念。
3.yuv转为MP4
bash
ffmpeg -f rawvideo -s:v 640x360 -i "1.yuv" -c:v libx264 1.mp4 -y
将640*360的源yuv数据1.yuv转为1.MP4
4.压缩视频(按照比特率500K-700K),同时拆分为图片
压缩视频
bash
ffmpeg -i 1.mp4 -vf scale=640:360 -vcodec libx264 -b:v 500k -bufsize 500k -maxrate 700k 1_360P_500k.mp4
抽取图片
bash
ffmpeg -i 1_360P_500k.mp4 -s:v 640x360 -f image2 -q 2 -r 5 1_360P_500k_5/%04d.png
5.截取视频段
bash
ffmpeg -ss 00:00:17 -to 00:00:50 -i 原视频.mp4 -vcodec copy -acodec copy out.mp4
6.限制比特率为2M/s
bash
ffmpeg -i "1.mp4" -b:v 2M 1_out.mp4
7.缩放到720P
bash
ffmpeg -i 1.mp4 -vf scale=1280:720 -vcodec h264 1_720P.mp4
8.视频拼接
横向拼接
bash
ffmpeg -i 0001.mp4 -i 0001_2.mp4 -filter_complex hstack 0001_cat.mp4
纵向拼接
bash
ffmpeg -i 0001.mp4 -i 0001_2.mp4 -filter_complex vstack 0001_cat.mp4 -y
9.合并视频同时编码成h264
创建txt文件
bash
mylist.txt
内容写上需要合并的视频名称
bash
file '0.mp4'
file '1.mp4'
合并视频并转264
bash
ffmpeg -f concat -safe 0 -i mylist.txt -c copy output.mp4 -vcodec h264 output_h264.mp4
直接合并视频
bash
ffmpeg -f concat -safe 0 -i mylist.txt -c copy output.mp4
10. 查看视频码率等信息
bash
ffprobe 1.mp4
11. 视频拼接并指定列数
bash
ffmpeg -i 1.mp4 -i 2.mp4 -filter_complex "[0:v]crop=1920:ih:920:0[v0];[1:v]crop=1920:ih:920:0[v1];[v0][v1]hstack=inputs=2[v]" -map "[v]" output.mp4
1920是开始的列,920是总的提取多少列
12.提取特定范围的帧
bash
ffmpeg -i input.mp4 -vf "fps=1" -ss 00:01:00 -to 00:02:30 output_%04d.png