ffmpeg - 在ffmpeg中将RTSP流连续保存为特定长度(10分钟)的多个mp4文件

标签 ffmpeg stream rtsp

我正在使用 ffmpeg 将来自相机的 RTSP 流录制到 .mp4 文件中,我想将其滚动到每个视频 10 分钟长的多个文件中。

目前我有一个解决方案:我正在设置一个时间长度“00:10:00”,完成后我将使用新进程重新启动命令。 示例:

ffmpeg -rtsp_transport tcp -i <rtsp_url> -acodec copy -vcodec  copy  -t 00:10:00 D:\video_test.mp4

但此解决方案使相机变得不稳定,RTSP 流通常因此错误而损坏:

rtsp://10.96.41.14:9024/user=xxxx_password=xxx_channel=1_stream=0.sdp?real_stream: Operation not permitted

我想找到更好的解决方案来持续保持与 RTSP 流的连接(而不是使用 -t 标志创建新进程)。

有没有人有更好的主意来保持连续录制流? 谢谢

最佳答案

FFmpeg 有一个 segment您可以为此使用 muxer。

基本形式是

ffmpeg -rtsp_transport tcp -i <rtsp_url> -c copy -f segment -segment_time 600 stream_piece_%d.mp4

请注意,分段复用器在关键帧处拆分,因此获得的分段持续时间可能会有小的偏差。

关于ffmpeg - 在ffmpeg中将RTSP流连续保存为特定长度(10分钟)的多个mp4文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56423581/

相关文章:

c - FFmpeg C Api - 降低 fps 但保持视频持续时间

c++ - 使用 FFMPEG 库接收 RTSP 流

node.js - 有什么方法可以重用 NodeJS 中的管道转换链吗?

ffmpeg - 如何使用 ffmpeg 将 rtsp 流转换为 mjpeg (http)

iphone - 将 iPhone 或 iPod 变成无线网络摄像头

android - 如何在android中创建带边框的视频

java - Xuggler的IPacket如何与FLV标签或标签部分对应?

php - 将套接字资源转换为流套接字

ios - 如何通过 RTMP 将视频流式传输到 iOS?

video-streaming - RTSP 流式传输到 Web 应用程序(使用 VLC 2.0)