ffmpeg 一些命令

1.修改分辨率率

将输入为640480的修改为320249

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=iw2:ih2[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?0,scale=iw/2:-1” output

8.添加水印
ffmpeg -y -i style.ts -vf “movie=helloworld.png[wm];[in][wm]overlay=1:1[out]” output.avi(位于左上角)
ffmpeg -y -i style.ts -vf “movie=helloworld.png[wm];[in][wm]overlay=main_w-overlay_w-10:10[out]” output.avi(位于右上角)
ffmpeg -y -i style.ts -vf “movie=helloworld.png[wm];[in][wm]overlay=10:main_h-overlay_h-10[out]” output.avi(左下角)
ffmpeg -y -i style.ts -vf “movie=helloworld.png[wm];[in][wm]overlay=main_w-overlay_w-10:main_h-overlay_h-10[out]” output.avi(右下角)

这种方式添加水印后会导致视频质量下降,具体的原因还不清楚,如果有谁清楚可以给我留言。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值