You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在ffmpeg-python中设置RTSP输入流的FPS

解决ffmpeg-python中指定RTSP输入帧率的问题

在命令行中你用-r 18放在输入源前指定帧率,对应到ffmpeg-python里,不能直接在input()函数的参数中设置(那样会把参数放到-i之后,变成对输出帧率的设置),需要把-r作为全局前置参数添加,具体有两种可行方式:

方式一:使用option()方法添加全局参数

这完全对应命令行-r 18 -i <rtsp_url>的写法,通过链式调用在input()之前添加全局选项:

import ffmpeg

# 添加全局-r参数,指定输入帧率为18
stream = ffmpeg.option("-r", 18).input("rtsp://your_rtsp_stream_address")
# 配置HLS输出参数
stream = ffmpeg.output(
    stream,
    "output.m3u8",
    c_v="libx264",
    hls_time=10,
    hls_list_size=6
)
# 执行转码命令
ffmpeg.run(stream)

方式二:使用input()的framerate参数

ffmpeg-python的input()函数封装了framerate参数,效果等价于指定输入帧率(多数场景下和-r作用一致),写法更简洁:

import ffmpeg

stream = ffmpeg.input("rtsp://your_rtsp_stream_address", framerate=18)
stream = ffmpeg.output(
    stream,
    "output.m3u8",
    c_v="libx264",
    hls_time=10,
    hls_list_size=6
)
ffmpeg.run(stream)

两者核心区别:方式一完全复刻命令行参数顺序,确保和你之前验证有效的命令逻辑完全一致;方式二是ffmpeg-python提供的便捷封装,适合常规场景使用。

内容的提问来源于stack exchange,提问作者tamirg

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.27 00:12:17