平滑流式传输h.264输出在高速连接时降至最低质量流 [英] Smooth Streaming h.264 output drops to lowest quality stream on high speed connection
问题描述
在我脱掉头发之前 - 这个坏了吗? 使用EE3中的预设以及在XP或2008 R2上运行的最新补丁,SDK等,当我使用VC1平滑流媒体配置文件时,平滑流输出仅表现正常。
Before I tear out my hair - is this broken? Using presets in EE3 with latest patches, SDK etc, installed, running on either XP or 2008 R2, the smooth streaming output only behaves normal when I use the VC1 smooth streaming profile.
所有我的h.264编码的平滑流测试通常以12-13fps播放,最初缓冲得很好,然后当达到最高质量时,它会在几秒钟内降至最低质量(客户端和服务器之间为1 Gbps)
All my h.264 encoded smooth streaming tests usually play in 12-13fps, initially buffer up fine, then when the top quality is reached it drops down to the lowest quality within a few seconds (1 Gbps between client and server)
示例
第一个VC-1 IIS平滑流媒体HD 720p VBR
first VC-1 IIS Smooth Streaming HD 720p VBR
http://144.92.108.164/lhtester/smooth/VC1/Default.html
second h.264 IIS Smooth Streaming 720p CBR
second h.264 IIS Smooth Streaming 720p CBR
http://144.92.108.164/lhtester/ smooth / h264 / Default.html
两者都使用从IIS 7服务器上托管的Expression Encoder导出的Smooth Streaming Graphing 播放器模板,安装了最新的补丁。我已尝试使用各种源文件,但结果始终相同 - VC1播放正常,h.264降至低质量。
Both use the Smooth Streaming Graphing Player template as exported from Expression Encoder, hosted on IIS 7 server, latest patches installed. I've tried this with various source files, but the result is always the same - VC1 plays fine, h.264 drops to low quality.
源文件是cineform编解码器AVI文件,最初来自佳能HV20的HDV,24fps 1280x720 1:1像素方面的高清晰度,并且编码精细到几乎任何格式,只是通过流畅的流式播放不能按预期工作。
source files are cineform codec AVI files, originally HDV from a Canon HV20, 24fps 1280x720 1:1 pixel aspect, and encode fine to just about any format, just the playback via smooth streaming doesn't work as expected.
推荐答案
这是H.264 B帧问题 - 当H.264编解码器用于使用BFrame设置的平滑流时!= 0 Silverlight MediaElement不会对BFrame进行计数 - 因此报告的帧速率约为实际帧速率的一半。
This is the H.264 B-Frame issue -- when the H.264 codec is used for Smooth Streaming with the BFrame setting != 0 The BFrames don't get counted by the Silverlight MediaElement -- hence the reported frame rate of about half the actual frame rate.
一种解决方法是编码H.264平滑流使用BFrame = 0的数据
One work-around is to Encode the H.264 smooth streaming data with BFrame=0
另一个解决办法是确保安装了EE3 QFE,然后调整为Smooth Streaming heuritics,以便禁用渲染和/或丢弃的帧速率 此处描述了执行此操作的过程:
Another work-around is make sure that you have the EE3 QFE installed and then adjust to the Smooth Streaming heuritics so the rendered and/dropped frame rate are disabled and you just use CPU usage data to lower the selected bitrate when the content is played on a machine without enough CPU power to render the higher bitrates. The process for doing this is described here:
这篇关于平滑流式传输h.264输出在高速连接时降至最低质量流的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!