如何在程序中获取rtsp地址中的视频流数据,存储再处理

ps45221 2014-10-10 02:54:43
目前有一个IP摄像头,配置好了,可以在浏览器中输入ip地址登录,可以看到监测图像。现在我需要在程序中处理这些视频数据,想要得到这些数据,询问了开发的摄像头的人,说通过rtsp的方式,并给了我一个rtsp://192.168.23.92:8557/PSIA/Streaming/channels/2?videoCodecType=H.264 主码流 这个地址,怎么在程序中使用,求高人提供思路
...全文
17911 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
孤雁西飞 2017-05-26
  • 打赏
  • 举报
回复
我也遇到同样的问题,用libvlc录像,但是没有音频
qq_36004692 2016-11-16
  • 打赏
  • 举报
回复
老哥你这个是怎么解决的 能给我说说嘛 我也遇到这问题了
mypint_skyman 2016-11-14
  • 打赏
  • 举报
回复
引用 9 楼 Sun1956 的回复:
[quote=引用 8 楼 sxcong 的回复:] live555提供了两个demo ,一个是openRTSP,另一个是testRTSPClient 可以看这里: http://blog.chinaunix.net/uid-15063109-id-4482932.html 保存成bmp或jpg看这个:http://blog.chinaunix.net/uid-15063109-id-4275143.html 当然ffmpeg也可以,参考ffplay代码就行了。只是ffplay延时比直接用live长一些。
目前用ffmpeg可以获取rtsp视频流,并解码用sdl显示了,但是显示的图像貌似丢包有点多,视频中会出现一定程度的马赛克,或者花屏,有没有好的方法解决[/quote] 我打开RTSP视频流,并将视频流保存为mp4文件,但是没有音频啊,声音用哪个接口?
ps45221 2014-10-24
  • 打赏
  • 举报
回复
引用 10 楼 u010806377 的回复:
要进行缓存处理,而且要判断什么时候播放。交流Q:1049568282
不好意思,工作地方禁止QQ,不怎么清楚缓存处理,可否说的详细点。我自己是这样想的,因为我是写了个测试的程序,读取放在一个while循环中,丢帧有点多。出现原因可能有一下几个: 1.网络原因,当然不可避免,但不知道如何解决 2.改用多线程测试,一个线程读,另外一个显示,并分别加锁,以免读取错乱。 3.由于是读取摄像头,有没有可能导致读取的数据堆积在内存中。 不知道说的对不对,请指证……
ps45221 2014-10-22
  • 打赏
  • 举报
回复
引用 8 楼 sxcong 的回复:
live555提供了两个demo ,一个是openRTSP,另一个是testRTSPClient 可以看这里: http://blog.chinaunix.net/uid-15063109-id-4482932.html 保存成bmp或jpg看这个:http://blog.chinaunix.net/uid-15063109-id-4275143.html 当然ffmpeg也可以,参考ffplay代码就行了。只是ffplay延时比直接用live长一些。
目前用ffmpeg可以获取rtsp视频流,并解码用sdl显示了,但是显示的图像貌似丢包有点多,视频中会出现一定程度的马赛克,或者花屏,有没有好的方法解决
精分患者 2014-10-14
  • 打赏
  • 举报
回复
引用 6 楼 Sun1956 的回复:
引用 5 楼 Peter_Hugh 的回复:
[quote=引用 3 楼 pzx601917159 的回复:] ffmpeg中av_open_input_file()这个函数可以直接打开rtsp流,av_write_frame()可以把数据写到文件。
非常赞同,我前一阵就是用FFMpeg做的,另外也可是试试libvlc
谢谢解答,我主要想获取这个rtsp地址中的实时视频流,然后一帧一帧的读取,转换为bmp或者jpeg这种通用的格式,不知道ffmpeg是否提供了这样的函数,如有,请详细说明下,[/quote]如果只是采集视频流的话,关键的是两个函数,一个是avformat_open_input,通过URL打开视频流,一个是av_read_frame读取视频流每一帧
sxcong 2014-10-14
  • 打赏
  • 举报
回复
live555提供了两个demo ,一个是openRTSP,另一个是testRTSPClient 可以看这里: http://blog.chinaunix.net/uid-15063109-id-4482932.html 保存成bmp或jpg看这个:http://blog.chinaunix.net/uid-15063109-id-4275143.html 当然ffmpeg也可以,参考ffplay代码就行了。只是ffplay延时比直接用live长一些。
精分患者 2014-10-13
  • 打赏
  • 举报
回复
引用 3 楼 pzx601917159 的回复:
ffmpeg中av_open_input_file()这个函数可以直接打开rtsp流,av_write_frame()可以把数据写到文件。
非常赞同,我前一阵就是用FFMpeg做的,另外也可是试试libvlc
ps45221 2014-10-13
  • 打赏
  • 举报
回复
引用 5 楼 Peter_Hugh 的回复:
引用 3 楼 pzx601917159 的回复:
ffmpeg中av_open_input_file()这个函数可以直接打开rtsp流,av_write_frame()可以把数据写到文件。
非常赞同,我前一阵就是用FFMpeg做的,另外也可是试试libvlc
谢谢解答,我主要想获取这个rtsp地址中的实时视频流,然后一帧一帧的读取,转换为bmp或者jpeg这种通用的格式,不知道ffmpeg是否提供了这样的函数,如有,请详细说明下,
ps45221 2014-10-11
  • 打赏
  • 举报
回复
引用 3 楼 pzx601917159 的回复:
ffmpeg中av_open_input_file()这个函数可以直接打开rtsp流,av_write_frame()可以把数据写到文件。
可否读取每一帧,把该帧转换为jpeg或者bmp之类的格式保存
rightorwrong 2014-10-11
  • 打赏
  • 举报
回复
抓包看看,再问下厂家的开发人员
  • 打赏
  • 举报
回复
ffmpeg中av_open_input_file()这个函数可以直接打开rtsp流,av_write_frame()可以把数据写到文件。
ps45221 2014-10-11
  • 打赏
  • 举报
回复
引用 1 楼 rightorwrong 的回复:
抓包看看,再问下厂家的开发人员
用wireshark抓包吗,没怎么用过,联系了厂家只给了通过rtsp方式获取,并给了上面那个rtsp地址,

2,542

社区成员

发帖
与我相关
我的任务
社区描述
专题开发/技术/项目 多媒体/流媒体开发
社区管理员
  • 多媒体/流媒体开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧