ffmpeg ffplay 命令收集

本文详细介绍FFmpeg的多种实用操作,包括视频格式转换、图片格式转换、音视频合并、视频截取、视频播放速度调整等。深入解析FFmpeg指令参数,如视频编码、音频编码、时间戳调整等,帮助读者掌握FFmpeg核心功能。

其他文章收藏

Ffmpeg实例,为视频添加一个循环播放的背景音乐(混声)

ffmpeg 转换图片格式

ffmpeg -i test.jpg -s 640x480 -pix_fmt yuv420p test.yuv

这样输出的yuv文件就会出现在bin文件夹下面。

-pix_fmt yuv420p需要添加上,如果不添加的话,往往转码结果为yuv444格式,不是一般读者所需要的。

采用ffplay 查看YUV数据包括视频或者图片

ffplay [-f rawvideo] -video_size 640x480 test.yuv 

注:
(1)-f rawvideo : 经笔者测试这个选项可加可不加。
(2)yuv文件不包涵宽高数据所以必须用-video_size指定宽和高,格式为:widthxheight
(3)test.yuv可以是一帧(图片)或者多帧(视频)数据

ffmpeg将音频和视频合并

ffmpeg -an -i video.mp4 -vn -i audio.mp4 -c:v copy -c:a copy  -y out.mp4
# 参数解释:
-an ---- audio disable
-vn ---- video disable
-c:v copy ---- 视频编码:直接复制原视频,不用重新编码,速度快
-c:a copy ---- 视频编码:直接复制原音频,不用重新编码,速度快
-y ---- overwrite output files

ffmpge截取/裁剪视频(如果从视频最开始截取,直接省略-ss参数)

# 从第3秒开始,到第8秒结束。不改变音视频的编码(直接复制/节约时间)
# 该命令使用-to 参数标注结束时间是00:08
ffmpeg -i inputVideo.mp4 -ss 00:03 -to 00:08 -c:v copy -c:a copy out.mp4

# 该命令使用-t 参数标注输出视频持续时间是00:05。 效果和上面的命令相同
ffmpeg -i inputVideo.mp4 -ss 00:03 -t 00:05 -c:v copy -c:a copy out.mp4

# 参数说明
-ss time_off        set the start time offset
-t duration         record or transcode "duration" seconds of audio/video
-to time_stop       record or transcode stop time

ffmpeg 视频倍速/慢速播放

参考文章:
ffmpeg 视频倍速播放 和 慢速播放

视频倍速/慢速原理

实现原理,通过使用 av filter 中的 setpts 改变每一个 PTS(PTS:presentation time stamp 显示时间戳)来实现。

视频慢速X0.5倍,-vf “setpts=PTS/0.5”

ffmpeg -i input.mkv -vf "setpts=PTS/0.5" output.mkv

视频倍速X4倍,-vf “setpts=PTS/4”

ffmpeg -i input.mkv -vf "setpts=PTS/4" output.mkv

如果想设置帧率(主要用于倍速的时候),例如,我想倍速X10,输出帧率30帧,就用-r参数设置帧率

ffmpeg -i input.mkv -r 30 -vf "setpts=PTS/10" output.mkv

音频倍速/慢速原理

"atempo"滤镜对音频速度调整范围[0.5 - 100],超过会报下列错误,例如我是的0.4,错误信息如下

Value 0.400000 for parameter 'tempo' out of range [0.5 - 100]

倍速X4

ffmpeg -i input.mp3 -af "atempo=4" output.mp3

倍速X0.8

ffmpeg -i input.mp3 -af "atempo=0.8" output.mp3

倍速X0.4(多个滤波器叠加)

ffmpeg -i input.mp3 -af "atempo=0.5,atempo=0.8" output.mp3

音视频一起倍速

倍速X4

ffmpeg -i input.mp4 -vf "setpts=PTS/4" -af "atempo=4" output.mp4

# 也可以使用-filter_complex
ffmpeg.exe   -i .\dogfight.mp4 -filter_complex "[0:v]setpts=0.25*PTS[v];[0:a]atempo=4.0[a]" -map "[v]" -map "[a]"  X4_dogfight.mp4

还支持添加参数来用硬件加速

参考链接:
ffmpeg 调用 NVIDIA GPU 处理视频转码,笔记。和纯用CPU比起来,速度快5倍以上

ffmpeg.exe  -hwaccel cuda -i .\dogfight.mp4  -c:v h264_nvenc -r 30  -filter_complex "[0:v]setpts=0.1*PTS[v];[0:a]atempo=10.0[a]" -map "[v]" -map "[a]"  X10_dogfight.mp4
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值