vlc -vvv rtmp://ip:1935/live --intf dummy --sout="#transcode{vcodec=mp4v}:std{access=file,mux=mp4,dst=output.mp4}"
这个vlc指令可以将rtmp流录制到一个大文件,如何分块录制成小文件,比如1分钟一个文件或1000帧一个文件
vlc -vvv rtmp://ip:1935/live --intf dummy --sout="#transcode{vcodec=mp4v}:std{access=file,mux=mp4,dst=output.mp4}"
这个vlc指令可以将rtmp流录制到一个大文件,如何分块录制成小文件,比如1分钟一个文件或1000帧一个文件
要使用 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 帧生成一个新文件。
请根据你的实际需求调整这些参数。