video - rtsp流捕获

标签 video ffmpeg video-streaming rtsp mplayer

我正在寻找一些通用的方法来转储 rtsp 流。我想弄清楚,某些 rtsp 流运行良好并且服务器正在发送一些可观看的视频。

openRTSP

一开始google推荐我openRTSP工具。

 openRTSP -4 ${stream_link} > ${output_file}

但该工具转储的输出视频文件并不正确。视频解码器 (ffdec) 返回许多错误,例如“解码视频数据包失败”和“[h264] 无帧!”,这些不适合我。

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

经过一番谷歌搜索后,我发现它真的很旧 ffmpeg's muxer bug .

mplayer

比起我尝试将 mplayer 与 LIVE_555 库一起使用。

mplayer -noframedrop -dumpfile ${output_file} -dumpstream ${stream_link}

但我也有一些错误。

Stream not seekable!
Core dumped ;)

问题

我觉得我做错了什么。这听起来真的很荒谬,没有办法将 rtsp 流保存在正确且可播放的视频文件中。

也许还有其他一些工具可以帮助完成这项任务?实际上,对于所有类型的库和语言的任何建议,我将不胜感激。但是这个过程应该是自动的并且有 cli。

改进

我在本地主机上用 vlc-streamer 模拟 rtsp-broadcaster 做了大约 50% 的实验。这是一个manual我试图遵循这一点。

我有最新的支持 x264 的 ffmpeg,我通过 that 安装了它有用的线程。

最佳答案

你试过了吗vlc保存rtsp流?它对我有用。不过我尝试使用图形界面。但它也应该在命令行下工作。

关于video - rtsp流捕获,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7932389/

相关文章:

ios - 以特定比特率在 iOS 设备上录制视频

ios - 如何在 IOS 中的两个时间间隔之间播放 youtube 视频

Android结合两个视频覆盖另一个

java - ffmpeg只录制6秒的视频

react-native - 如何通过 native react 将相机流发送到 rtmp 服务器

http - HTTP Streaming 规范的官方标准文档

c++ - 确定 FFMPEG 的 AVFrame 中数据 [0] 的大小

ios6 - 如何将静态库与 xcode 链接?

Java 视频/音乐播放器

c++ - 在 C++ 流媒体服务器中使用 ffmpeg 转换视频