当前位置:首页 » 安卓系统 » live555forandroid

live555forandroid

发布时间: 2023-04-05 05:37:55

❶ Android 中实时获取户外监控摄像头的视频信息怎么做

Android中实时获取户外监控摄像头的视频信息的方法为:
1、使用FFMpeg进行视频采集,使用Live555进行RTP传输,使用VideoView进行播放。
csdn提到:重载FrameSource,写一个服务类,可以从FrameSource的派生类读取帧数据,转发给live555.
评价:本方案大型访问量大的不行,少量连接比如100以内的可以。
2、用gstreamer完成采集、编码、组播。客户端使用VideoView进行播放。
评价:本方案优点为可以实现大访问量。缺点是基本从底层架构,代码量比较大。
3、使用FFmpeg进行视频采集,使用ffserver进行视频转发,客户端使用VideoView播放。
评价:优点是实现简单、容易演示,缺点是实时性不好以及用户量大不行。

❷ live555推送1080p花屏

最近一直研究live555推送rtsp流到easydarwin,实现转发,但是遇到一个问题:live555推送之后的视频流出现花屏,在网上搜罗一大圈之后找到一个答案,就是live555内部OutPacketBuffer默认大小只有60000,即是unsigned OutPacketBuffer::maxSize = 60000;当我推送1080p视频流的时散橡候,用vlc播放,出现部分视频是花的,主要就是缓冲区太小了,将这个值改大一点即可,目前测试改成288000,视频不会出现花屏,问题完美解决。

1、大数据帧花屏

live555推送之后的视频流出现花屏,查看源码DynamicRTSPServer.cpp文件,源码如下:

   sms->addSubsession(::createNew(env, fileName, reuseSource));

  } else if (strcmp(extension, ".264") == 0) {

    // Assumed to be a H.264 Video Elementary Stream file:

    NEW_SMS("H.264 Video");

    OutPacketBuffer::maxSize = 100000; // allow for some possibly large H.264 frames

    sms->addSubsession(::createNew(env, fileName, reuseSource));

  } else if (strcmp(extension, ".265") == 0) {

    // Assumed to be a H.265 Video Elementary Stream file:

    NEW_SMS("H.265 Video");

    OutPacketBuffer::maxSize = 100000; // allow for some possibly large H.265 frames

    sms->addSubsession(::createNew(env, fileName, reuseSource));

  } else if (strcmp(extension, ".mp3") == 0) {

    // Assumed to be a MPEG-1 or 2 Audio file:

    NEW_SMS("MPEG-1 or 2 Audio")

查看上面红色部分对于H264和H265输出包最大缓冲100000字节(100K),对于高清视频缓冲区太小了,必需更改大些。目前更改到冲雹旁800000,对于1080P视频使用VLC播放时,不会再出现花屏。

2、循环播放文件

在liveMedia库下的ByteStreamFileSource.cpp文件中的95行,找到

void ByteStreamFileSource::doGetNextFrame() {

  if (feof(fFid) || ferror(fFid) || (fLimitNumBytesToStream && fNumBytesToStream == 0)) {

    handleClosure();

    return;

  }

更改为

void ByteStreamFileSource::doGetNextFrame() {

  if (feof(fFid) || ferror(fFid) || (fLimitNumBytesToStream && fNumBytesToStream == 0)) {

    //handleClosure();

    //肆贺return;

  fseek(fFid, 0, SEEK_SET);

  }

主要思想为,当文件读完后不让关闭文件,而是重新读取文件。经过测试,当VLC关闭RTSP链接后,文件会关闭,重新打开其他文件不受影响。

❸ 请问RTSP一定要使用AAC格式来做live audio streaming吗

你好!!!真的很感谢你的回覆!!!我接触Android不久我参考Spydroid,在手机上建起了RTSP
ServerSpydroid原本的作法是
从mic读取PCM
->
编码成AAC
->
封装成RTP封包
->
传送我的想法
从手机本地读取mp3或wav
->
封装成RTP封包->
传送那在请问,同样都是RTSP
Streaming,Spydroid跟Live555在效率上会有差别吗?因为我尝试编出Live555的so档案,但不知道要如何调用Live555让RTSP
Server开启...想回到Spydroid,试着直接将mp3不编码,直接封装到RTP封包,在做传送所以不知道该使用哪个想法比较好...

热点内容
我的世界纯生存服务器推荐死亡不掉落 发布:2025-07-04 17:06:14 浏览:345
方舟编译器可以用于p20吗 发布:2025-07-04 17:00:17 浏览:784
短片解压 发布:2025-07-04 16:50:08 浏览:736
全工作服务器如何省电 发布:2025-07-04 16:46:00 浏览:993
redis数据库设计 发布:2025-07-04 16:39:23 浏览:334
建设银行账号和密码是什么意思 发布:2025-07-04 16:35:37 浏览:145
feret人脸数据库 发布:2025-07-04 16:35:33 浏览:69
什么游戏要钱不要密码 发布:2025-07-04 16:30:33 浏览:477
安卓雕刻软件叫什么 发布:2025-07-04 16:30:22 浏览:819
mc服务器搭建简单吗 发布:2025-07-04 16:29:23 浏览:142