我正在寻找一些通用的方法来转储rtsp流。我想弄清楚,一些rtsp流运行良好,服务器正在发送一些可观看的视频。
openRTSP
起初,谷歌推荐我使用openRTSP工具。
openRTSP -4 ${stream_link} > ${output_file}但是该工具转储的输出视频文件并不是真正正确的。视频解码器(ffdec)返回许多错误,比如“未能解码视频数据包”和"h264 no frame!",这些错误不适合我。
ffmpeg
然后我尝试用ffmpeg工具转储rtsp流。
ffmpeg -loglevel debug -i "${stream_link}" -s 640x480 -vcodec copy -acodec copy -y ${output_file}但是,流处理经常被错误所打断:
Application provided invalid, non monotonically increasing dts to muxer in stream 0: 730672 >= 730672
av_interleaved_write_frame(): Invalid argument我正在尝试使用--fflags igndts,但是ffmpeg并没有忽略这些错误。这没有任何意义,因为这个错误实际上意味着音频和视频流是异步发送的。最糟糕的是,被中断的转储导致的转储文件也是不正确的。Ffdec返回一些错误:
ERROR [mov,mp4,m4a,3gp,3g2,mj2] moov atom not found
ERROR [ffdec] av_open_input_file: Operation not permitted在我搜索了一杯好东西之后,我发现它真的很旧了。
mplayer
而不是我尝试在LIVE_555库中使用mplayer。
mplayer -noframedrop -dumpfile ${output_file} -dumpstream ${stream_link}但我也犯了一些错误。
Stream not seekable!
Core dumped ;)问题
我想我做错了什么。这听起来真的很荒谬,没有办法将rtsp流保存在正确和可播放的视频文件中。
也许还有其他一些工具可以帮助完成这项任务?事实上,我将感谢任何对各种语言和语言的建议。但是这个过程应该是自动的,而且应该有cli。
精化
关于50%的实验,我在本地主机上做了一些类似rtsp广播的vlc实验。这是一个手册,我试着跟随它。
我有非常新鲜和最新的x264支持的ffmpeg,这是我通过那有用的线程安装的。
发布于 2011-10-31 12:22:00
您尝试过vlc来保存rtsp流吗?它对我有用,我试过用图形界面。但是它也应该在命令行中工作。
发布于 2014-10-08 00:06:32
ffmpeg + wallclock_as_timestamps工作
ffmpeg是实现目标的最简单方法,但以下是一些重要的注意事项:
首先,我建议您获得最后一个版本(2.4.x,而不是Ubuntu附带的1.2.x )。你可以从https://www.ffmpeg.org/download.html那里得到
你还是会得到
Application provided invalid, non monotonically increasing dts to muxer in stream 0: 730672 >= 730672
av_interleaved_write_frame(): Invalid argument error错误,但你可以摆脱它。这主要是因为FPS (每秒帧)在IP相机上不断变化,这取决于连接的质量。这里有两个对我有用的解决方案:
use_wallclock_as_timestamps解决方案1 =使用选项,因此您的命令如下
ffmpeg -use_wallclock_as_timestamps 1 -i rtsp://myip:554/mpeg4 -c copy myrecord.avi赞成= CPU使用率低+高质量的录音,因为没有任何代码转换/ CONS =稍大的文件(~6 6Mb/分钟)
Solution2 =删除命令中的"-acodec复制-vcodec复制“选项。简单命令
ffmpeg -i rtsp://myip:554/mpeg4 myrecord.avi会成功的。赞成=小文件(~1.2Mb /分钟)/ CONS =高CPU使用率(在我的计算机上为6%),因为我认为它正在将代码转换为默认的编解码器+质量较差的记录。
希望能帮上忙!
发布于 2011-11-14 05:01:55
德米特里,你应该试试ErlyVideo服务器。它可以捕获RTSP-流量,并将其存储在多媒体文件中,可与媒体播放器一起播放。
https://stackoverflow.com/questions/7932389
复制相似问题