FFmpeg 使用记录
转换 PNG 为 JPG,并按比例缩放
ffmpeg -i input.png -vf "scale=800:-1" output.jpg
这条命令会:
-i input.png
指定输入文件-vf "scale=800:-1"
让宽度变为 800,高度自适应(等比缩放)output.jpg
生成 JPG 文件
批量转换 PNG 为 JPG
mkdir jpg_output
for img in *.png; do
ffmpeg -i "$img" -vf "scale=800:-1" "jpg_output/${img%.png}.jpg"
done
将 HEIC 文件转换为 JPG 格式
ffmpeg -i input.heic output.jpg
查看到当前环境中默认的视频编码器选项
ffmpeg -encoders
ffmpeg -encoders | grep libx264
指定使用 x264 编码器进行视频编码
ffmpeg -i input.mp4 -c:v libx264 output.mp4
拼接多个MP4视频文件
创建一个文本文件,列出要拼接的MP4文件的路径。每行一个文件,类似于这样:
file 'video1.mp4' file 'video2.mp4' file 'video3.mp4'
将这个文件保存为一个文本文件,例如
input.txt
。运行FFmpeg命令,使用
concat
协议拼接这些文件。以下是一个示例命令:ffmpeg -f concat -safe 0 -i input.txt -c copy output.mp4
-f concat
: 指定使用concat
协议。-safe 0
: 允许使用相对路径。-i input.txt
: 指定包含要拼接的文件列表的文本文件。-c copy
: 表示使用原始编解码参数进行拼接,这样可以避免重新编码。output.mp4
: 指定输出文件的名称。
执行命令,等待FFmpeg完成拼接操作。
这个命令将在不重新编码的情况下拼接输入的MP4文件,这有助于保持视频质量。如果视频文件的编解码参数不同,可能需要重新编码以确保一致性。
请注意,这个方法要求要拼接的视频文件的编解码参数(分辨率、帧率等)必须一致。如果不一致,可能需要先进行转码以保持一致性。
ffprobe
用于获取多媒体文件的详细信息
获取所有信息:
ffprobe -i input.mp4
只显示流信息:
ffprobe -show_streams -i input.mp4 ffprobe -i http://example.com/path/to/playlist.m3u8 -show_streams -select_streams v
以 JSON 格式输出:
ffprobe -v quiet -print_format json -show_format -show_streams input.mp4
修改 MKV 文件的标题(title)和描述(description)
ffmpeg -i input.mkv -metadata title="New Title" -metadata description="New Description" -c copy output.mkv
更新日志
2025/6/15 11:14
查看所有更新日志
13186
-initial于