我正在尝试使用 Onvif 协议将录音从 NVT 导出到文件 (.mp4)。
Onvif 依靠 RTSP 流来访问实时视频和录音。
可以使用 ffmpeg 保存实时视频,而且效果很好
ffmpeg -rtsp_transport tcp -i 'rtsp://10.0.0.210:554/cam/liveUrl' -c copy file.mp4
但是,当访问 Onvif 录制文件时,我必须定义要发送到 rtsp 服务器的初始绝对日期时间(如果需要,还要定义最终日期时间)。该信息需要在 PLAY 请求中发送,作为范围:时钟值。另一个有用的设置是规模,允许以比实时更快的速度接收视频(对于下载很有用)
使用“openRTSP 获取流的示例请求
PLAY rtsp://10.0.0.1/streamURl/ RTSP/1.0
CSeq: 7
Authorization: Digest **************
User-Agent: ./openRTSP (LIVE555 Streaming Media v2023.06.20)
Session: 4001414593142
Scale: 2.000000
Range: clock=20230710T180001Z-20230710T180201Z
OpenRTSP 支持将这些值设置为参数,但它不支持 h265。所以我必须使用 ffmpeg 来“修复”导出的文件并合并音频和视频流ffmpeg -i file_renamed_to.265 -i audio_file -c copy out.mp4
我想绕过 openRTSP 并直接使用 ffmpeg。是否可以将“时钟范围”和“比例”设置为 ffmpeg 参数?