当前位置:首页 > 开发 > FFmpeg > 正文内容

FFmpeg 指定比特率导出指定时长视频

FFmpeg4个月前 (12-30)

方法一:通过设置时间范围和比特率转码

这种方法先明确指定要截取的时间范围(1 秒时长),然后进行转码并设置比特率,步骤如下:

确定时间范围

假设你要截取原视频中从第 10 秒开始的 1 秒时长内容(你可以根据实际需求修改起始时间),需要将起始时间(-ss 参数)和持续时间(-t 参数)结合使用。

执行转码命令

以下是以设置视频比特率为 1M(1Mbps)为例的转码命令,输出一个新的视频文件包含指定的 1 秒内容:

ffmpeg -i input_video.mp4 -ss 10 -t 1 -b:v 1M output_video_1s.mp4

各参数含义如下:

  • -i input_video.mp4:指定输入的原始视频文件,把 input_video.mp4 换成你实际的视频文件名。

  • -ss 10:表示从原视频的第 10 秒处开始截取,单位是秒。

  • -t 1:指定要截取的时长为 1 秒。

  • -b:v 1M:-b:v 用于设置视频比特率,这里设定为 1Mbps,你可以按需更改该数值。

  • output_video_1s.mp4:转码后输出的视频文件名,可自行修改。

方法二:通过过滤视频流的方式(利用视频滤镜)

你还可以通过视频滤镜来筛选出想要的 1 秒视频内容并设置比特率,示例命令如下(同样以截取从第 10 秒开始的 1 秒时长且比特率设为 1M 为例):

ffmpeg -i input_video.mp4 -vf "trim=start=10:end=11,setpts=PTS-STARTPTS" -b:v 1M output_video_1s.mp4

解释一下相关参数:

  • -i input_video.mp4:输入的原始视频文件,按实际情况替换文件名。

  • -vf "trim=start=10:end=11,setpts=PTS-STARTPTS":通过视频滤镜(-vf)来操作,trim 滤镜用于裁剪视频片段,start=10 表示从第 10 秒开始,end=11 表示到第 11 秒结束(即持续 1 秒),setpts=PTS-STARTPTS 是对裁剪后的视频帧进行时间戳重置,确保时间顺序等正常。

  • -b:v 1M:设置视频比特率为 1Mbps。

  • output_video_1s.mp4:最终输出的视频文件名,可按需确定。

这两种方法都可以实现指定比特率并只导出视频中 1 秒内容的目的,方法一相对简单直接,常用于常规的时间截取操作;方法二在需要更精细地控制视频流处理(比如结合其他更多滤镜操作等)时比较有用。


转载请注明出处。

本文链接:http://pythonopen.com/?id=1638

相关文章

FFmpeg合并视频

使用`concat`滤镜(适用于相同编码格式的视频)  原理:`concat`滤镜可以将多...

使用FFmpeg混流MP4和MP3

1. 裁剪为最短时长ffmpeg -i input_video.mp4 ...

FFmpeg [mp4 @ 0000013d42a009c0]

[mp4 @ 0000013d42a009c0] Could ...

FFmpeg 分割视频时抛弃音频

FFmpeg分割视频时抛弃音频的方法一、通过流选择参数精准保留视频ffmpeg -i&nb...

FFmpeg 合并视频时抛弃音频

在使用FFmpeg合并视频并抛弃音频时,可根据输入文件的编码一致性选择以下两种方法:方法1:conc...

FFmpeg 图片合成视频,并添加音频

使用FFmpeg将图片合成视频并添加音频你可以使用以下 ffmpeg 命令行将图片序列合成视频并添加...