关于FFMPEG + Live555 = H.264的有关问题
发布时间:2011-06-27 19:30:38 文章来源:www.iduyao.cn 采编人员:星星草
关于FFMPEG + Live555 = H.264的问题
大家好!经过一段时间的琢磨,我现在可以用Live555接收RTSP协议的H.264视频流保存到文件,又能用FFMPEG解码并播放H.264文件了。但现在的问题是怎样把这两者结合在一起呢?也就是不经过文件而直接处理和播放。Live555方面我已经能跟踪到它接收网络流的地方,但FFMPEG我只找到读取文件的代码……请问大家有什么办法实现FFMPEG + Live555 = H.264?谢谢!!
------解决方案--------------------
ffmpeg 直接支持rtsp,你用就好
------解决方案--------------------
ffmpeg有RTSP这块的使用的,具体的看看ffserver.c这个文件吧
------解决方案--------------------
你仔细看看 FileSink.cpp 这个文件,你就可以获取到实时的视频,接着解码,播放即可。
------解决方案--------------------
你保存文件的同时,把该帧解码Render出去,不就是播放了吗?
------解决方案--------------------
在adddata的函数中,把buffer数据直接塞到ffmpeg中
首先要调用av_probe_input_format和av_find_stream_info几个函数获取媒体信息,比如视频宽度等。获得这些信息后给AVCodec *decode_codec赋值,然后调用解码函数
然后就可以调用avcodec_decode_video这样的函数进行解码显示了
主要就是把adddata里的buffer数据放到ffmpeg的buffer中就可以了
------解决方案--------------------
楼主的需求ffmpeg完全可以满足了
./ffmpeg -i rtsp://.... out.mp4 可以保存文件
./ffplay out.mp4播放
应该不需要改代码
如果rstp server端需要验证的话 应该需要修改rtsp.c的代码 在DESCRIPTION中 加入 用户名密码(base64)
------解决方案--------------------
你是这样的一个过程,只要能进行for循环就是对的了
以前就是这样用的
AVFormatContext *pFmtCtx;
AVInputFormat *fmt = NULL;
int err, probe_size;
AVProbeData probe_data, *pd = &probe_data;
ByteIOContext *pb = NULL;
pd->buf = *ppszGetBuf;
pd->buf_size = 0;
pd->filename = "rtsp://192.168.1.101/stream0";
if (!fmt) {
/* guess format if no file can be opened */
fmt = av_probe_input_format(pd, 0);
}
然后
av_open_input_stream(&pFmtCtx, pb, "rtsp://192.168.1.101/stream0", fmt, NULL);
av_find_stream_info(pFmtCtx);
再然后
for( int i=0; i <pFmtCtx->nb_streams; i++ )
{
if( CODEC_TYPE_VIDEO == pFmtCtx->streams[ i ]->codec->codec_type )
{
nVideoStream = i;
break;
}
}
你找找这部分本地播放的文件对比下,看看是哪里的问题
差不多快出来了
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。
其他相似内容:
-
DSHOW push
推模式,ConnectDirect 的,为什么我一直反回错误
下级级用的是HAALI的一个东西,用CMemStream拉模式的时候是可以连接的
...
-
ffmpeg编码后视频速度不正确,质量也不好,求助,求助,求助,求助啊
对采集到得摄像头图像进行编码保存,发现得到的视频质量不好,而且速度不...
-
请问怎么在live555中接收jpeg
请问,我现在想接收一个服务器发送的jpeg 不知道怎么用live555做一个客户端, 接收它并显示。
请问应...
-
XP SP3 YUV420 的fiter依赖 在线等答案……
链接时媒体类型为WMMEDIASUBTYPE_I420
有的XP可以播放出来
有的就不行,请问不能播放...
-
如何获取通过麦克风来获取当前说话的音量?
使用Wave系统API采集音频输入的数据,当数据缓存区满了后,收到消息取得数据后,如何根据这里...
-
RFC3984 有没有完整的中文版本呢?
搜了几个 都是一半英文一半中文的。哎 郁闷!
------解决方案--------------------
英文的凑合...
-
介绍一个学习directshow和com、atl技术的网站
有一个学习directshow和com、atl技术的网站,还可以下视频教程,共享给大家: http://www...
-
攻击帖:jrtplib、live555是个垃圾,刚开始搞流媒体就用这玩意就是找s
不解释~
来丢我砖头吧~~
我分太多了用不完~ 支持的散分~~~
...
-
50分,寻找《Visual C++音频/视频处理技术及工程实践》的随书光盘?
急于使用其中的几个例程。若哪位好心人能够提供,非常感谢!!我的QQ:52...
-
h264的高宽比怎么获取?
我看标准里面只有样点的高宽比啊。
还有,bit rate可以读出来吗?
------解决方案--------------------
是要...