FFMPEG用法整理

目录(?)[+]

1.修改分辨率率

将输入为640*480的修改为320*249

ffmpeg -i input -vf scale=iw/2:-2 output

iw:输入帧宽,此处为640,640/2=320。

-1告诉scale filter保持纵横比,所以scale filter计算出值240.


2.改变音视频播放速度

1>视频2倍播放速度,音频两倍播放速度。

ffmpeg -i input.mkv -filter:v "setpts=0.5*PTS" output.mkv

注意,此种方式会丢帧。可以通过改变输出帧率来避免丢帧。

ffmpeg -i input.mkv -r 16 -filter:v "setpts=0.25*PTS" -an output.mkv


2>视频0.5倍播放速度

ffmpeg -i input.mkv -filter:v "setpts=2.0*PTS"


3>改变音频播放速度

ffmpeg -i input.mkv -filter:a "atempo=2.0" -vn output.mkv

atempo filter的取值范围是0.5-2.0.

音频4倍播放速度实现方式:

ffmepg -i input.mkv -filter:a "atempo=2.0,atempo=2.0" -vn output.mkv


4>同步改变音视频

ffmpeg -i input.mkv -filter_complex "[0:v]setpts=0.5*PTS[v];[0:a]atempo=2.0[a]" -map "[v]" -map "[a]" output.mkv

注意:[v];[0:a]之间是分号!


3.filtergraph


命令行参数-vf 后面跟着的就是filtergraph描述

一个filtergraph后面可以跟着几个chains,每个chain可包含一个或多个filter

下面几个命令行的作用是相等的。

ffmpeg -i input -vf [in]scale=iw/2:-1[out] output

ffmpeg -i input -vf scale=iw/2:-1 output

同样:

ffmpeg -i input -vf [in]yadif=0:0:0[middle];[middle]scale=iw/2:-1[out] output #包含两个chains,每个chains含有一个filter,两个chains通过middle连接

ffmpeg -i input -vf [in]yadif=0:0:0,scale=iw/2:-1[out] output #1个chain,包含两个filter

ffmpeg -i input -vf yadif=0:0:0,scale=iw/2:-1 output


testsrc是ffmpeg提供的一段视频。

下面的命令的效果是:




ffmpeg -f lavfi -i testsrc -f lavfi -i testsrc -f lavfi -i testsrc -f lavfi -i testsrc -filter_complex

"[0:v]pad=iw*2:ih*2[a];

[1:v]negate[b];

[2:v]hflip[c];

[3:v]edgedetect[d];
[a][b]overlay=w[x];

[x][c]overlay=0:h[y];

[y][d]overlay=w:h[out]" 

-map "[out]" -c:v ffv1 -t 5 multi.avi


4.hflip

作用是水平旋转画面:

例如:

ffmpeg -f lavfi -i testsrc -vf "hflip" output.avi


5.negate

对输入帧取反。黑的变白的等等。。。


6.edgedetect

ffmpeg -f lavfi -i testsrc -vf "edgedetect[d]" out.avi

作用如图:




7.选择选项

例如:只选择I帧进行处理

ffmpeg -i input -vf select='eq(pict_type\,PICT_TYPE_I)' output

ffmpeg -i input -vf select="yadif=0:-1:0,scale=iw/2:-1" output



先整理这么多,以后用到再补充。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值