FFmpeg 的常用命令
记录了 FFmpeg 中的一些常用命令。
裁剪视频
裁剪视频中的片段:
ffmpeg -ss [start] -i input.mp4 -t [duration] -c copy output.mp4
ffmpeg -ss [start] -i input.mp4 -to [end] -c copy -copyts output.mp4
ffmpeg -i input.mp4 -ss [start] -t [duration] output.mp4
ffmpeg -i input.mp4 -ss [start] -to [end] output.mp4
说明:
- 当 -ss 在 -i 之前时,-to 选项相当于 -t 选项,可以使用 -copyts 来保证 -to 原有的效果
- 当 -ss 在 -i 之前时,会在输入文件中进行定位,此时 -avoid_negative_ts 会生效,即会将视频时间扩展到关键帧,但是裁剪的时间不准确
- 当 -ss 在 -i 之后时,-avoid_negative_ts 不生效,可以实现精确裁剪,但是可能会产生部分空白视频,建议启用编码器
字幕
提取字幕:
ffmpeg -i input.mkv -map 0:s:0 sub.srt
关键帧
查看视频中关键帧信息:
# 查看关键帧的所有信息
ffprobe -loglevel error -skip_frame nokey -select_streams v:0 -show_frames input.mp4
# 查看关键帧的时间戳
ffprobe -loglevel error -skip_frame nokey -select_streams v:0 -show_entries frame=pkt_pts_time -of csv=print_section=0 input.mp4