【ffmpeg】视频常用操作合集

1.转码264

ffmpeg -i [原视频.mp4] -vcodec h264 [输出视频.mp4]

2.视频流yuv数据抽取帧

ffmpeg -f rawvideo -s:v [尺寸] -i "[视频源]" -f image2 -q 2 -r [帧数] [文件夹及文件名]

尺寸 : 例如 :640x360
视频源:例如: test.yuv
帧数: 例如:5
文件夹及文件名: 例如:2-5/%04d.png

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

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),同时拆分为图片

压缩视频

ffmpeg -i 1.mp4 -vf scale=640:360 -vcodec libx264 -b:v 500k -bufsize 500k -maxrate 700k 1_360P_500k.mp4

抽取图片

ffmpeg -i 1_360P_500k.mp4 -s:v 640x360 -f image2 -q 2 -r 5 1_360P_500k_5/%04d.png

5.截取视频段

ffmpeg -ss 00:00:17 -to 00:00:50 -i 原视频.mp4 -vcodec copy -acodec copy out.mp4

6.限制比特率为2M/s

ffmpeg -i "1.mp4" -b:v 2M 1_out.mp4

7.缩放到720P

ffmpeg -i 1.mp4 -vf scale=1280:720 -vcodec h264 1_720P.mp4

8.视频拼接

横向拼接

ffmpeg -i 0001.mp4 -i 0001_2.mp4 -filter_complex hstack 0001_cat.mp4

纵向拼接

ffmpeg -i 0001.mp4 -i 0001_2.mp4 -filter_complex vstack 0001_cat.mp4 -y

9.合并视频同时编码成h264

创建txt文件

mylist.txt

内容写上需要合并的视频名称

file '0.mp4'
file '1.mp4'

合并视频并转264

ffmpeg -f concat -safe 0 -i mylist.txt -c copy output.mp4 -vcodec h264 output_h264.mp4

直接合并视频

ffmpeg -f concat -safe 0 -i mylist.txt -c copy output.mp4 

10. 查看视频码率等信息

ffprobe  1.mp4

11. 视频拼接并指定列数

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.提取特定范围的帧

ffmpeg -i input.mp4 -vf "fps=1" -ss 00:01:00 -to 00:02:30 output_%04d.png

你可能感兴趣的:(其他,ffmpeg,音视频)