live555推送1080p花屏

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了live555推送1080p花屏相关的知识,希望对你有一定的参考价值。

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

1、大数据帧花屏

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

   sms->addSubsession(MPEG4VideoFileServerMediaSubsession::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(H264VideoFileServerMediaSubsession::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(H265VideoFileServerMediaSubsession::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链接后,文件会关闭,重新打开其他文件不受影响。

推送通知在 Live iOS 应用程序上停止

【中文标题】推送通知在 Live iOS 应用程序上停止【英文标题】:Push Notification stopped on Live iOS App 【发布时间】:2017-06-22 08:07:36 【问题描述】:

我的 iOS 应用已在 App Store 上线,大约有 100 位用户正在使用该应用。我还在其中配置了推送通知。

最初,Notifications 工作正常,每个人都收到了通知,但是当我通过 Xcode 将应用程序安装到另一台设备时,它停止了。

我的证书尚未过期,因为我在接收通知的同一证书上附加了其他应用程序。

谁能告诉我可能是什么问题?

提前致谢。

【问题讨论】:

【参考方案1】:

在开发模式下,您可以使用“gateway.sandbox.push.apple.com”主机名

生产主机名是“gateway.push.apple.com”

您可以签入后端文件

【讨论】:

好的。让我检查一下【参考方案2】:

您需要检查证书是否应在生产模式下创建:gateway.push.apple.com

【讨论】:

以上是关于live555推送1080p花屏的主要内容,如果未能解决你的问题,请参考以下文章

live555 编译

live555 RTSP推送到Darwin出现404错误的解决

LIVE555研究之三:LIVE555基础

Live555

live555的使用(转载)

如何使用live555-CSDN论坛