Skip to content

FFmpeg 使用记录

约 555 字大约 2 分钟

Shell

2020-06-18

转换 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视频文件

  1. 创建一个文本文件,列出要拼接的MP4文件的路径。每行一个文件,类似于这样:

    file 'video1.mp4'
    file 'video2.mp4'
    file 'video3.mp4'

    将这个文件保存为一个文本文件,例如input.txt

  2. 运行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: 指定输出文件的名称。
  3. 执行命令,等待FFmpeg完成拼接操作。

这个命令将在不重新编码的情况下拼接输入的MP4文件,这有助于保持视频质量。如果视频文件的编解码参数不同,可能需要重新编码以确保一致性。

请注意,这个方法要求要拼接的视频文件的编解码参数(分辨率、帧率等)必须一致。如果不一致,可能需要先进行转码以保持一致性。

ffprobe 用于获取多媒体文件的详细信息

  1. 获取所有信息:

    ffprobe -i input.mp4
  2. 只显示流信息:

    ffprobe -show_streams -i input.mp4
    ffprobe -i http://example.com/path/to/playlist.m3u8 -show_streams -select_streams v
  3. 以 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