Rus*_*pov 17 streaming mp4 ffmpeg vlc rtsp
如何将流(协议rtsp,编解码器h264)保存在文件(容器mp4)中?也就是说,在输入无尽的流(用CCTV摄像机)时,输出文件的mp4格式大小为5-10分钟的录制时间.
操作系统:debian,ubuntu软件:vlc,ffmpeg(avconv)
目前使用此方案:
cvlc rtsp://admin:admin@10.1.1.1:554/ch1-s1 --sout=file/ts:stream.ts
ffmpeg -i stream.ts -vcodec copy -f mp4 stream.mp4
Run Code Online (Sandbox Code Playgroud)
但它无法连续录制视频(重启后vlc会丢失大约10秒的直播视频).
Ale*_*den 22
请参阅有关服务器故障的此问题和答案.简而言之,切换工具.avconv会做你想要的.(ffmpeg已成为avconv.)
您正在寻找的功能称为分段.您的命令行看起来像这样:
avconv -i rtsp://10.2.2.19/live/ch01_0 -c copy -map 0 -f segment -segment_time 300 -segment_format mp4 "capture-%03d.mp4"
小智 9
Alexander Garden解决方案适用于ffmpep
以下版本.替换avconv
为ffmpeg
.
./ffmpeg -i rtsp://10.2.2.19/live/ch01_0 -c copy -map 0 -f segment -segment_time 300 -segment_format mp4"capture-%03d.mp4"
由于FFmpeg对版本,ubuntu分裂和快速开发的混淆,我包括这个标题.
ffmpeg版本N-80023-gd55568d版权所有(c)2000-2016 FFmpeg开发人员使用gcc 4.8(Ubuntu 4.8.4-2ubuntu1~14.04.1)配置:--prefix =/home/rhinchley/q10/ffmpeg_build --pkg -config-flags = - static --extra-cflags = -I/home/rhinchley/q10/ffmpeg_build/include --extra-ldflags = -L/home/rhinchley/q10/ffmpeg_build/lib --bindir =/home/rhinchley/q10/bin --enable-gpl --enable-libass --enable-libfdk-aac --enable-libfreetype --enable-libmp3lame --enable-libopus --enable-libtheora --enable-libvorbis - enable-libvpx --enable-libx264 --enable-libx265 --enable-nonfree libavutil 55. 24.100/55. 24.100 libavcodec 57. 42.100/57. 42.100 libavformat 57. 36.100/57. 36.100 libavdevice 57. 0.101/57. 0.101 libavfilter 6. 45.100/6. 45.100 libswscale 4. 1.100/4. 1.100 libswresample 2. 0.101/2. 0.101 libpostproc 54. 0.100/54. 0.100
Stu*_*son -2
团队合作:分割视频源并让两个进程交替记录时间范围。您需要测试启动时间的变化程度以及它的变化程度。您可能希望将进程优先级设置为实时以减少启动时间差异。会有一些重叠,但根据我的推断,听起来这可能适合您的应用程序。例子:
p1: sRRRRRRRRRwwwwwwwwsRRRRRRRRRwwwwwwwwsRRRRRRRRR...
p2: wwwwwwwwwsRRRRRRRRRwwwwwwwwsRRRRRRRRRwwwwwwwww...
time -->
s: startup
R: running
w: wait
Run Code Online (Sandbox Code Playgroud)