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花屏的主要内容,如果未能解决你的问题,请参考以下文章