前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【FFmpeg】ffmpeg 命令行参数 ④ ( ffmpeg 视频参数解析 | 设置视频帧数 | 设置视频码率 | 设置视频帧率 | 设置视频宽高 | 设置视频宽高比 | 设置视频滤镜 )

【FFmpeg】ffmpeg 命令行参数 ④ ( ffmpeg 视频参数解析 | 设置视频帧数 | 设置视频码率 | 设置视频帧率 | 设置视频宽高 | 设置视频宽高比 | 设置视频滤镜 )

作者头像
韩曙亮
发布2024-03-05 10:02:40
1.7K0
发布2024-03-05 10:02:40
举报

一、设置视频帧数 -vframes 参数

1、-vframes 参数解析

在 ffmpeg 命令中 , -vframes 参数 的 作用是 指定要输出的视频帧数 , 通过该参数 可以 控制 视频处理的长度 , 即 : 在输出多少帧后 停止处理 视频流 ;

使用 -vframes 参数时 , 后面 的 参数值 是 一个具体的帧数 , -vframes 100 参数 是 输出 100 帧 画面 的 视频 ;

在 新版本的 ffmpeg 中 , -vframes 参数 会被标记为过时 或 不再推荐使用 ; 此时 使用 -frames:v 参数 设置 输出视频帧数 ;

2、设置视频帧数示例

使用 -vframes 参数设置帧数

执行

代码语言:javascript
复制
ffmpeg -i input.mp4 -vframes 100 output.mp4

命令 , 将 input.mp4 视频文件 的 前 100 帧视频画面 输出到 到 output.mp4 视频文件中 ;

下图中 输出文件 output.mp4 视频文件中 , 每秒大约 30 帧 , 有 3 秒 840 毫秒 的视频 , 计算出来是 100 帧视频画面 ;

使用 -frames:v 参数设置帧数

执行

代码语言:javascript
复制
ffmpeg -i input.mp4 -frames:v 100 output.mp4

命令 , 将 input.mp4 视频文件 的 前 100 帧视频画面 输出到 到 output.mp4 视频文件中 ;

二、设置视频码率 -b:v / -b 参数

1、-b:v / -b 参数解析

在 ffmpeg 命令中 , -b:v 参数 和 -b 参数 的 作用 都是 设置 视频码率 ,

  • 推荐使用 -b:v 参数 设置视频码率 , 参数中的 b 代表 码率 ( bitrate ) , :v 表示该码率参数是针对 视频流 ( Vedio Stream ) 设置的 ;
  • 不推荐使用 -b 参数 , 该参数命令设置不明确 , -b 参数 同时可以用于设置 音频码率 和 视频码率 , 但是通常情况下 默认 设置的是 视频码率 ;

-b:v / -b 参数 值 是 要设置的 输出文件 的 视频 码率值 , 如 : -b:v 1M 参数的作用是 将 视频码率设置为 1 Mbps , Mbps 代表兆比特每秒 ( Megabits per second ) ;

2、设置视频码率示例

执行

代码语言:javascript
复制
ffmpeg -i input.mp4 -b:v 1M output.mp4

命令 , 将 输入文件 input.mp4 以 1M 的视频码率 输出到 输出文件 output.mp4 中 ;

输入文件 input.mp4 的 视频码率为 1580 kb/s , 输出文件 output.mp4 的 视频码率为 1000 kb/s , 视频大小 由 13.1MB 变为 8.16MB ;

执行

代码语言:javascript
复制
ffmpeg -i input.mp4 -b 1M output.mp4

命令 , 将 输入文件 input.mp4 以 1M 的视频码率 输出到 输出文件 output.mp4 中 ;

三、设置输出视频帧率 -r 参数


1、-r 参数解析

在 ffmpeg 命令中 , -r 参数 的 作用是 设置 输出视频 的 帧率 Frame Rate , 帧率是指每秒钟显示的图像帧数 , 单位是 FPS , Frame Per Second ;

通过 -r 参数 可以 控制 输出视频的 播放速度 和 平滑度 , 帧率越高 , 视频越平滑流畅 , 帧率越低 , 视频越卡顿 ;

-r 参数 的 参数值 是 一个具体的帧率值 , 是一个数字 , 一般情况下 取值 0 ~ 120 , 设置 -r 60 参数 , 表示 输出视频的帧率为 60 帧每秒 ;

注意 : -r 参数 设置的是 输出视频的帧率 , 输入视频的帧率是固定的 , 如果 输入视频的帧率 与 该 -r 参数 设置的 输出视频帧率不同 ,

  • 如果 输入视频帧率 > 输出视频帧率 : 通过 丢弃视频帧 来调整输出视频的帧率。
  • 如果 输入视频帧率 < 输出视频帧率 : 通过 增加重复帧 来调整输出视频的帧率。

2、设置输出视频帧率示例

执行

代码语言:javascript
复制
ffmpeg -i input.mp4 -r 60 output.mp4

命令 , 将输入文件 input.mp4 的 视频流 重新编码为 帧率为 60 帧每秒 , 并将结果保存到 output.mp4 文件中 ;

下图中 , 输入文件 input.mp4 的 帧率为 29.608 FPS , 输出文件 output.mp4 的 帧率为 60 FPS ;

四、设置视频画面宽高 -s 参数

1、-s 参数解析

在 ffmpeg 命令中 , -s 参数 的 作用是 设置 输出视频 的分辨率 , 单位是 像素 ;

-s 参数的 参数值 是 一个宽度和高度的值 , 中间用 x 分隔 , 如 : 如果输出视频的分辨率为 376x210 , 则可以使用 -s 376x210 参数设置 ;

2、设置视频画面宽高示例

执行

代码语言:javascript
复制
ffmpeg -i input.mp4 -s 376x210 output.mp4

命令 , 将输入文件 input.mp4 的 视频流 重新编码为 376x210 的分辨率 , 并将输出结果保存到 output.mp4 输出文件中 ;

下图中 , 输入文件 input.mp4 的 视频分辨率为 752x420 像素 , 输出文件 output.mp4 的 视频分辨率为 376x210 像素 ;

五、设置视频画面宽高比 -aspect 参数

1、-aspect 参数解析

在 ffmpeg 命令中 , -aspect 参数 的作用是 设置视频画面的宽高比 ;

使用 -aspect 参数时 , 设置的参数值是 一个宽高比的值 , 这个参数值可以是一个

  • 浮点数 : 表示宽度与高度的比值 , 如 : -aspect 0.5 ;
  • 以冒号分隔的两个整数 : 表示宽和高的具体数值 , 如 : -aspect 1:2 ;

2、设置视频画面宽高比示例

执行

代码语言:javascript
复制
ffmpeg -i input.mp4 -aspect 1:1 output.mp4

命令 , 将输入文件 input.mp4 的 视频流 重新编码为 1:1 的宽高比 , 并将输出结果保存到 output.mp4 输出文件中 ;

下图中 , 输入文件 input.mp4 的 视频分辨率为 752x420 像素 宽高比为 16:9 , 输出文件 output.mp4 的 视频分辨率为 752x420 像素 宽高比为 1:1 ;

六、设置视频编解码器 -vcodec 参数

1、-vcodec 参数解析

在 ffmpeg 命令中 , -vcodec 参数 的 作用是 指定 视频编解码器 ;

视频编解码器 是用于 对 视频数据 进行 压缩编码 和 解压缩解码 的算法 , 使用 不同的 编解码器 获得的 视频文件 的 画面质量 / 文件大小 / 兼容性 不同 ;

-acodec 后面的 参数值 是 编解码器的名称 ;

常见的 视频编解码器 包括

  • libx264 : 用于 H.264 格式的视频编码 ;
  • libvpx : 用于 VP8 编码 ;
  • libvpx-vp9 : 用于 VP9 编码 ;
  • copy : 用于直接复制原始视频流而不进行重新编码 ;

【FFmpeg】ffmpeg 命令行参数 ② ( Windows 环境中 ffmpeg 命令行输出文本搜索 -findstr 用法 | -findstr 搜索文本字符串用法 | 输出命令行到文件中 ) 博客中介绍了 获取 常用的 编解码器 的方法 , 执行

代码语言:javascript
复制
ffmpeg -encoders

命令 , 即可查看当前 版本的 ffmpeg 支持的 编解码器 ;

下面列举了 视频 编解码器 , 仅做参考 ;

代码语言:javascript
复制
 V..... a64multi             Multicolor charset for Commodore 64 (codec a64_multi)
 V..... a64multi5            Multicolor charset for Commodore 64, extended with 5th color (colram) (codec a64_multi5)
 V..... alias_pix            Alias/Wavefront PIX image
 V..... amv                  AMV Video
 V..... apng                 APNG (Animated Portable Network Graphics) image
 V..... asv1                 ASUS V1
 V..... asv2                 ASUS V2
 V..... libaom-av1           libaom AV1 (codec av1)
 V....D librav1e             librav1e AV1 (codec av1)
 V..... libsvtav1            SVT-AV1(Scalable Video Technology for AV1) encoder (codec av1)
 V..... avrp                 Avid 1:1 10-bit RGB Packer
 V..... libxavs2             libxavs2 AVS2-P2/IEEE1857.4 (codec avs2)
 V..X.. avui                 Avid Meridien Uncompressed
 V..... ayuv                 Uncompressed packed MS 4:4:4:4
 V..... bmp                  BMP (Windows and OS/2 bitmap)
 VF.... cfhd                 GoPro CineForm HD
 V..... cinepak              Cinepak
 V..... cljr                 Cirrus Logic AccuPak
 V.S... vc2                  SMPTE VC-2 (codec dirac)
 VFS... dnxhd                VC3/DNxHD
 V..... dpx                  DPX (Digital Picture Exchange) image
 VFS... dvvideo              DV (Digital Video)
 VF.... exr                  OpenEXR image
 V.S... ffv1                 FFmpeg video codec #1
 VF.... ffvhuff              Huffyuv FFmpeg variant
 V..... fits                 Flexible Image Transport System
 V..... flashsv              Flash Screen Video
 V..... flashsv2             Flash Screen Video Version 2
 V..... flv                  FLV / Sorenson Spark / Sorenson H.263 (Flash Video) (codec flv1)
 V..... gif                  GIF (Graphics Interchange Format)
 V..... h261                 H.261
 V..... h263                 H.263 / H.263-1996
 V.S... h263p                H.263+ / H.263-1998 / H.263 version 2
 V..... libx264              libx264 H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10 (codec h264)
 V..... libx264rgb           libx264 H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10 RGB (codec h264)
 V....D h264_amf             AMD AMF H.264 Encoder (codec h264)
 V....D h264_mf              H264 via MediaFoundation (codec h264)
 V....D h264_nvenc           NVIDIA NVENC H.264 encoder (codec h264)
 V..... h264_qsv             H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10 (Intel Quick Sync Video acceleration) (codec h264)
 V..... nvenc                NVIDIA NVENC H.264 encoder (codec h264)
 V..... nvenc_h264           NVIDIA NVENC H.264 encoder (codec h264)
 V..... libx265              libx265 H.265 / HEVC (codec hevc)
 V..... nvenc_hevc           NVIDIA NVENC hevc encoder (codec hevc)
 V....D hevc_amf             AMD AMF HEVC encoder (codec hevc)
 V....D hevc_mf              HEVC via MediaFoundation (codec hevc)
 V....D hevc_nvenc           NVIDIA NVENC hevc encoder (codec hevc)
 V..... hevc_qsv             HEVC (Intel Quick Sync Video acceleration) (codec hevc)
 VF.... huffyuv              Huffyuv / HuffYUV
 V..... jpeg2000             JPEG 2000
 VF.... libopenjpeg          OpenJPEG JPEG 2000 (codec jpeg2000)
 VF.... jpegls               JPEG-LS
 VF.... ljpeg                Lossless JPEG
 VF.... magicyuv             MagicYUV video
 VFS... mjpeg                MJPEG (Motion JPEG)
 V..... mjpeg_qsv            MJPEG (Intel Quick Sync Video acceleration) (codec mjpeg)
 V.S... mpeg1video           MPEG-1 video
 V.S... mpeg2video           MPEG-2 video
 V..... mpeg2_qsv            MPEG-2 video (Intel Quick Sync Video acceleration) (codec mpeg2video)
 V.S... mpeg4                MPEG-4 part 2
 V..... libxvid              libxvidcore MPEG-4 part 2 (codec mpeg4)
 V..... msmpeg4v2            MPEG-4 part 2 Microsoft variant version 2
 V..... msmpeg4              MPEG-4 part 2 Microsoft variant version 3 (codec msmpeg4v3)
 V..... msvideo1             Microsoft Video-1
 V..... pam                  PAM (Portable AnyMap) image
 V..... pbm                  PBM (Portable BitMap) image
 V..... pcx                  PC Paintbrush PCX image
 V..... pfm                  PFM (Portable FloatMap) image
 V..... pgm                  PGM (Portable GrayMap) image
 V..... pgmyuv               PGMYUV (Portable GrayMap YUV) image
 VF.... png                  PNG (Portable Network Graphics) image
 V..... ppm                  PPM (Portable PixelMap) image
 VF.... prores               Apple ProRes
 VF.... prores_aw            Apple ProRes (codec prores)
 VFS... prores_ks            Apple ProRes (iCodec Pro) (codec prores)
 V..... qtrle                QuickTime Animation (RLE) video
 V..... r10k                 AJA Kona 10-bit RGB Codec
 V..... r210                 Uncompressed RGB 10-bit
 V..... rawvideo             raw video
 V..... roqvideo             id RoQ video (codec roq)
 V..... rpza                 QuickTime video (RPZA)
 V..... rv10                 RealVideo 1.0
 V..... rv20                 RealVideo 2.0
 V..... sgi                  SGI image
 V..... snow                 Snow
 V..... speedhq              NewTek SpeedHQ
 V..... sunrast              Sun Rasterfile image
 V..... svq1                 Sorenson Vector Quantizer 1 / Sorenson Video 1 / SVQ1
 V..... targa                Truevision Targa image
 V..... libtheora            libtheora Theora (codec theora)
 VF.... tiff                 TIFF image
 VF.... utvideo              Ut Video
 V..... v210                 Uncompressed 4:2:2 10-bit
 V..... v308                 Uncompressed packed 4:4:4
 V..... v408                 Uncompressed packed QT 4:4:4:4
 V..... v410                 Uncompressed 4:4:4 10-bit
 V..... libvpx               libvpx VP8 (codec vp8)
 V..... libvpx-vp9           libvpx VP9 (codec vp9)
 V..... vp9_qsv              VP9 video (Intel Quick Sync Video acceleration) (codec vp9)
 V..... libwebp_anim         libwebp WebP image (codec webp)
 V..... libwebp              libwebp WebP image (codec webp)
 V..... wmv1                 Windows Media Video 7
 V..... wmv2                 Windows Media Video 8
 V..... wrapped_avframe      AVFrame to AVPacket passthrough
 V..... xbm                  XBM (X BitMap) image
 V..... xface                X-face image
 V..... xwd                  XWD (X Window Dump) image
 V..... y41p                 Uncompressed YUV 4:1:1 12-bit
 V..... yuv4                 Uncompressed packed 4:2:0
 VF.... zlib                 LCL (LossLess Codec Library) ZLIB
 V..... zmbv                 Zip Motion Blocks Video

2、-vcodec 参数设置 libx264 视频编码器

执行

代码语言:javascript
复制
ffmpeg -i input.mp4 -vcodec libx264 output.mp4

命令 , 将 input.mp4 输入文件转换为 H.264 编码的视频 输出到 output.mp4 输出文件中 ;

3、-vcodec 参数设置 libvpx-vp9 视频编码器

执行

代码语言:javascript
复制
ffmpeg -i input.mp4 -vcodec libvpx-vp9 output.mp4

命令 , 将 input.mp4 输入文件转换为 VP9 编码的视频 输出到 output.mp4 输出文件中 ;

七、设置视频滤镜 -vf 参数

1、-vf 参数解析

在 ffmpeg 命令中 , -vf 参数 的 作用是 设置 视频滤镜 , 可以对输入的视频流进行各种复杂的图像处理 ;

-vf 参数 的 参数值 通常是 单个滤镜 或 多个由逗号分隔的滤镜链 , 每个滤镜都可以对视频进行特定的变换效果 ;

参考 【FFmpeg】ffplay 命令行参数 ④ ( 修改窗口标题 -window_title 参数 | 设置播放循环次数 | 设置显示模式 -showmode 参数 | 设置视频滤镜 -vf 参数 ) 四、ffplay 命令行参数 - 设置视频滤镜 博客中的 视频滤镜 设置 ,

2、视频滤镜示例

执行

代码语言:javascript
复制
ffmpeg -i input.mp4 -vf "scale=1280:720" output.mp4

命令 , 将输入视频 input.mp4 的尺寸调整为 1280x720 像素 , 并输出到 output.mp4 输出文件中 ;

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2024-03-02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、设置视频帧数 -vframes 参数
    • 1、-vframes 参数解析
      • 2、设置视频帧数示例
        • 使用 -vframes 参数设置帧数
        • 使用 -frames:v 参数设置帧数
    • 二、设置视频码率 -b:v / -b 参数
      • 1、-b:v / -b 参数解析
        • 2、设置视频码率示例
        • 三、设置输出视频帧率 -r 参数
          • 1、-r 参数解析
            • 2、设置输出视频帧率示例
            • 四、设置视频画面宽高 -s 参数
              • 1、-s 参数解析
                • 2、设置视频画面宽高示例
                • 五、设置视频画面宽高比 -aspect 参数
                  • 1、-aspect 参数解析
                    • 2、设置视频画面宽高比示例
                    • 六、设置视频编解码器 -vcodec 参数
                      • 1、-vcodec 参数解析
                        • 2、-vcodec 参数设置 libx264 视频编码器
                          • 3、-vcodec 参数设置 libvpx-vp9 视频编码器
                          • 七、设置视频滤镜 -vf 参数
                            • 1、-vf 参数解析
                              • 2、视频滤镜示例
                              相关产品与服务
                              媒体处理
                              媒体处理(Media Processing Service,MPS)是一种云端音视频处理服务。基于腾讯多年音视频领域的深耕,为您提供极致的编码能力,大幅节约存储及带宽成本、实现全平台播放,同时提供视频截图、音视频增强、内容理解、内容审核等能力,满足您在各种场景下对视频的处理需求。
                              领券
                              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档