ffmpeg常用视频处理命令

命令参数

命令格式:ffmpeg -i [输入文件名] [参数选项] -f [格式] [输出文件]

1、参数选项:
(1) -an: 去掉音频
(2) -acodec: 音频选项, copy表示采用相同的音频编解码
(3) -vcodec:视频选项,copy表示采用相同的视频编解码
2、格式:
(1) h264: 表示输出的是h264的视频裸流
(2) mp4: 表示输出的是mp4的视频
(3)mpegts: 表示ts视频流

视频处理

一、视频截取

ffmpeg -i 输入视频 -vcodec copy -acodec copy -ss 00:00:10 -to 01:00:00 D:\out.mp4 -y

-i input缩写表示输入视频,可以是本地的视频文件或rtsp等视频流
-ss 表示开始录制时间,此处表示10秒钟后开始录制
-t 表示视频录制持续的时间此处为1个小时
-y 是yes的缩写,若输出视频文件已存在则覆盖

二、提取每一帧图片

ffmpeg -i 输入视频 -ss 00:00:00 -f image2 -tt 00:01:00 -r 1 D:\Imgs\%3d.jpg

-tt 视频停止的时间点,此处表示在视频的1分钟处停止录制
-f 是format缩写,表示强制转化的类型,此处image2表示转化成图片类型
-r 表示每秒钟的帧数,此处是每秒钟取一帧

三、裁剪局部视频

在这里插入图片描述
剪切输入帧的左第三,中第三,右第三

ffmpeg -i input -vf crop=iw/3:ih:0:0 output
ffmpeg -i input -vf crop=iw/3:ih:0:0 output
ffmpeg -i input -vf crop=iw/3:ih:0:0 output

合并多个视频

1.使用mpeg拼接

将 mp4 先转码为 mpeg文件,mpeg是支持简单拼接的,然后再转回 mp4。

ffmpeg -i first.mp4 -qscale 4 first.mpg
ffmpeg -i second.mp4 -qscale 4 second.mpg
cat first.mpg second.mpg | ffmpeg -f mpeg -i - -qscale 6 -vcodec mpeg4 output.mp4

-qscale 量化因子越小越好

2.使用ts拼接

先将 mp4 转化为同样编码形式的 ts 流,因为 ts流是可以 concate 的,先把 mp4 封装成 ts ,然后 concate ts 流, 最后再把 ts 流转化为 mp4。

ffmpeg -i first.mp4 -vcodec copy -acodec copy -vbsf h264_mp4toannexb first.ts
ffmpeg -i first.mp4 -vcodec copy -acodec copy -vbsf h264_mp4toannexb second.ts
ffmpeg -i "concat:first.ts|second.ts" -acodec copy -vcodec copy -absf aac_adtstoasc output.mp4

简单例子

因为目前在读本科的小C是跟着导师学习目标检测与语义分割这块,所以免不了需要大量的图像数据作为数据集,下面是我简单利用导师给的视频址,结合powershell编程与Windows自带的任务计划程序实现每日每小时都执行一次一小时的图片样本采集示例。

$now = Get-Date
$Date = $now.ToString('yyyy-MM-dd')
$time = $now.ToString('yyyy-MM-dd-HH')
mkdir D:\Imgs\$Date\$time
ffmpeg -i rtmp://******** -ss 00:00:00 -t 01:00:00 -f image2  -r 0.1 D:\Imgs\$Date\$time\$time-%3d.jpg

将上述文本保存为get_img.ps1, 此处的ps1为powershell的可执行程序,类似于以bat结尾的文件,在终端输入文件名即可测试。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值