FFmpeg 常用命令

FFmpeg编译:https://blog.csdn.net/bobcat_kay/article/details/88843778

1剪切
//-d 输出调试日志
//-ss 从第20s开始截取
//-t 截取8s时长的视频
ffmpeg -d -ss 00:00:20 -t 00:00:08 -i /sdcard/input.mp4 -vcodec copy -acodec copy /sdcard/output.mp4

2拼接

(1)保存待拼接的视频到文件 /sdcard/list.txt:

file /sdcard/Movies/Replay_2018.05.08-13.46.mp4
file /sdcard/Movies/Replay_2018.05.08-13.29.mp4

(2)执行拼接命令

ffmpeg -d -y -f concat -safe 0 -i /sdcard/list.txt -c copy /sdcard/Movies/out.mp4

注意:此方式只适用于分辨率和码率一致的无损拼接

3音视频变速

(1)音视频同步变速:

//播放速度X2
ffmpeg -d -y -i /sdcard/input.mp4 -filter_complex [0:v]setpts=0.5*PTS[v];[0:a]atempo=2.0[a] -map [v] -map [a] /sdcard/output.mp4

//播放速度X0.25
ffmpeg -d -y -i /sdcard/input.mp4 -filter_complex "[0:v]setpts=4.0*PTS[v];[0:a]atempo=0.5,atempo=0.5[a]" -map [v] -map [a] /sdcard/output.mp4

//播放速度X0.5
ffmpeg -d -y -i /sdcard/input.mp4 -filter_complex [0:v]setpts=2.0*PTS[v];[0:a]atempo=0.5[a] -map [v] -map [a] /sdcard/output.mp4

(2)只变速视频:

//播放速度X0.5
ffmpeg -y -i /sdcard/input.mp4 -filter_complex [0:v]setpts=2.0*PTS -an /sdcard/output.mp4

如果不修改音频速度的话建议用MediaExtractor和MediaMuxer,直接修改pts,速度要快很多,1分钟的视频大概只需要2秒钟

(3)只变速音频:

//播放速度X2
ffmpeg -y -i /sdcard/input.mp4 -filter:a atempo=2.0 /sdcard/output.mp4
4生成GIF动图
//-ss 从第20s开始
//-t 持续5秒的时长
//-s gif分辨
//-r gif帧率
ffmpeg -ss 20 -t 5 -i /sdcard/input.mp4 -s 540x303 -f gif -r 8 /sdcard/a.gif
5音视频混合
//volume 视频原声音量和音乐音量
ffmpeg -y -i /sdcard/input.mp4 -i /sdcard/a.mp3 -filter_complex [0:a]aformat=sample_fmts=fltp:sample_rates=44100:channel_layouts=stereo,volume=0.5[a0];[1:a]aformat=sample_fmts=fltp:sample_rates=44100:channel_layouts=stereo,volume=1.0[a1];[a0][a1]amix=inputs=2:duration=first[aout] -map [aout] -ac 2 -c:v copy -map 0:v:0 /sdcard/out.mp4
6视频旋转
ffmpeg -i /sdcard/input.mp4 -filter_complex transpose=1 -y /sdcard/output.mp4
7添加水印
ffmpeg -y -i /sdcard/input.mp4 -i sdcard/gamepp/logo.png -acodec copy -filter_complex overlay=1:1 /sdcard/output.mp4
8 转码
ffmpeg -i /sdcard/input.mp4 -b:v 5000k -s 1920x1080 -r 60  -y /sdcard/output.mp4
9 提取视频帧
ffmpeg -i ori.mp4 -r 2 -ss 00:00:05 -t 5 image/image-%3d.jpg

ffmpeg -ss 00:00:02 -i test.mp4 -pix_fmt yuv420p -an -c:v rawvideo -pix_fmt yuv420p -vframes 1 out.yuv

10 旋转

将竖屏拍摄视频旋转为横屏
ffmpeg -d -y -i srcPath -codec copy -map_metadata 0 -metadata:s:v:0 rotate=0 OutPath

11 播放

播放yuv420p
ffplay -f rawvideo -pixel_format yuv420p -s 1920*1080 test.yuv

播放nv12
ffplay -f rawvideo -pixel_format nv12 -s 1920*1080 test.yuv
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值