FFmpeg 提取图片、剪切视频、编码视频、连接视频相关记录

1、提取图片

FFmpeg  -ss  start_time  -t  last_time  -i  video_path  -f  image2  -r  fps  -q:v  2   image_path

其中:start_time 表示起始时间,一般表现为 00:00:00,last_time 表示持续时间,格式同起始时间。-to 可以指定结束时间,单位以秒记。

-f  iamge2 指定图片编码格式,-r 指定提取频率,-q:v 指定图片高质量,image_path 为图片输出路径,提取多个图片可用 path_%d 命名。

采样频率 r 建议按照视频自身帧率来采。如视频15帧,而以30的帧频来采集图像,则两帧一重复。同理设置成15以下,采集出的图像数肯定小于总帧数。

貌似 jpg 与 bmp 无明显差异,体积大小不同。理论上 jpg 更耗时,有圧缩过程。默认情况下,jpg 压缩率一般可达到 10.

4K 视频图像尺寸 3840x2160,bmp可达到23-24M。


2、编码视频

FFmpeg  -i  image_path  -vcodec  code  -acodec  code  -r  fps  video_path

该命令可以对规则命名的图片群进行编码,code 表示视频及音频编码方式, fps 为帧频

-r,此处 r 据说是硬砍,不懂专业术语。建议 framerate 替代。

不过貌似 ffmpeg 帧频限制在了 25,低于25时默认25.


3、剪切视频

FFmpeg  -ss  start_time  -t  last_time  -i  video_path   -vcodec  code  -acodec  code  -r  fps   video_path

剪切视频命令与图片提取命令时间设置相似,编解码参数设置与编码视频命令设置相似


4、连接视频

windows系统与Linux系统操作略有差异,仅试了Windows系统。

copy  /b  path_in1+path_in2+...+path_inN  path_all

FFmpeg  -i  path_all  path_out

Linux系统下貌似用cat命令,未测试

cat  path_in1+path_in2+...+path_inN  path_all

其中各子文件需要相同的格式,包括编码格式、帧频等。

如果文件类型不同,可先FFmpeg处理一致。


5、添加水印

ffmpeg -i  inputvideo -vf "movie=1.jpg,scale=150:300[watermask];

[in][watermask] overlay=100:100[out]" -y  outputvideo

scale:水印大小,水印长度*水印的高度;

overlay:水印的位置,距离屏幕左侧的距离*距离屏幕上侧的距离;

你可能感兴趣的:(ffmpeg,ffmpeg)