当前位置: 首页 > 知识库问答 >
问题:

视频处理 - 如何使用VLC录制RTMP实时流并分块保存文件?

邢俊悟
2024-11-23
vlc -vvv rtmp://ip:1935/live --intf dummy --sout="#transcode{vcodec=mp4v}:std{access=file,mux=mp4,dst=output.mp4}"

这个vlc指令可以将rtmp流录制到一个大文件,如何分块录制成小文件,比如1分钟一个文件或1000帧一个文件

共有1个答案

洪弘亮
2024-11-23
要使用 VLC 录制 RTMP 实时流并分块保存文件,可以通过在 `--sout` 选项中使用 `segment` 模块来实现。以下是一个示例命令,它将 RTMP 流录制为每 1 分钟一个文件的 MP4 格式:

vlc -vvv rtmp://ip:1935/live --intf dummy --sout="#transcode{vcodec=mp4v,acodec=mpga,ab=128,channels=2,samplerate=44100}:segment{s=60,mux=mp4,dst=output-segment-%03d.mp4}"


在这个命令中:
- `#transcode{...}` 部分用于指定转码选项,例如视频编解码器(`vcodec=mp4v`)和音频参数(`acodec=mpga,ab=128,channels=2,samplerate=44100`)。
- `segment{...}` 部分用于指定分段参数:
  - `s=60` 表示每 60 秒(1 分钟)生成一个新文件。
  - `mux=mp4` 指定使用 MP4 封装格式。
  - `dst=output-segment-%03d.mp4` 指定输出文件的命名模式,其中 `%03d` 是一个占位符,表示三位数的序号。

如果你想基于帧数来分段(例如每 1000 帧一个文件),可以使用 `segment-frames` 选项代替 `segment`,并指定帧数:

vlc -vvv rtmp://ip:1935/live --intf dummy --sout="#transcode{vcodec=mp4v,acodec=mpga,ab=128,channels=2,samplerate=44100}:segment-frames{f=1000,mux=mp4,dst=output-frame-%03d.mp4}"


在这个命令中,`segment-frames{f=1000,...}` 表示每 1000 帧生成一个新文件。

请根据你的实际需求调整这些参数。
 类似资料:
  • 我正在尝试开发一个应用程序,允许我在录制视频时绘制视频,然后将录制的视频和视频保存在一个mp4文件中供以后使用。另外,我想使用camera2库,特别是我需要我的应用程序在高于API 21的设备上运行,我总是避免使用不推荐的库。 我尝试了很多方法,包括FFmpeg,其中我放置了TextureView的覆盖层。getBitmap()(来自摄影机)和从画布获取的位图。它工作正常,但由于它的功能很慢,视频

  • 本文向大家介绍python3将视频流保存为本地视频文件,包括了python3将视频流保存为本地视频文件的使用技巧和注意事项,需要的朋友参考一下 使用python3+opencv3.3.1环境将视频流保存为本地视频文件,具体内容如下 1、利用opencv中的VideoCapture类获取视频流的链接,通过cv2的方法得到该视频流的帧数和每帧大小。 2、使用VideoWriter类进行视频编码 3、通

  • 问题内容: 我能够通过VLC命令行接收/查看UDP h264数据包(即VLC –network-caching 0 –demux h264 udp:// …) 我正计划通过OpenCV算法处理那些帧。但是,我似乎找不到找到将VLC帧发送到我的Python OpenCV脚本的方法。 是否可以在单独的脚本中通过Numpy传递要处理的VLC流输出? 之前,我曾尝试使用其VideoCapture函数直接将

  • 我想用树莓派实时捕捉带有时间戳的视频帧。视频由USB摄像头使用python代码中的ffmpeg()函数制作。如何保存当前由USB摄像头在树莓派中制作的视频帧? 我尝试使用opencv的三个函数。cv2。VideoCapture可检测视频,保存帧。以下是代码,为简洁起见,未提及包含的库。 该代码保存了以前由网络摄像头制作的视频帧。它不保存当前由网络摄像头录制的视频帧。

  • 我使用aws kinesis video stream webRTC在reactjs中进行视频聊天。一切都很好。但是我想把视频存储在s3 Bucket中。我应该如何实现这个视频存储?

  • 我试图转换一个实时的rtmp流到hls流。 我看了之后有了一些想法 提前谢谢...

  • 几乎停留在原始流到。wav->的转换上,用Python有可能实现吗?找到了类似的实现,但总是在Java(https://github.com/aws-samples/amazon-connect-realtime-transcription)中遇到困难。 例如,我只需要将这个流转换为。wav格式,以便以后可以由普通音频播放器播放,并用作语音邮件和类似的用例。

  • 问题内容: 我是OpenCV的初学者。我想对要上传到服务器的视频帧进行一些图像处理。我只想读取可用的框架并将它们写入目录中。然后,等待视频的另一部分上载并将帧写入目录。并且,我应该等待每个帧都完全上传,然后将其写入文件。 您能告诉我如何使用OpenCV(Python)吗? 编辑1: 我编写了这段代码,用于从文件中捕获视频,而新数据将附加在文件末尾。换句话说,该文件不是完整的视频,并且另一个程序正在