• FMS发布视频流H.264如何设置


    FMS这个话题由来已久,H.264这个编码格式也由来已久。FMS不叫FMS了,改叫AMS了。因为是Adobe。

    今天就说说flash发布流媒体视频,以H.264编码出现的问题。在网上找,大把的关于as3的H.264视频编码的代码。API就那么几个。可是,当你真正去做,用到流媒体发布和播放的时候,就会发现结果并不是想象的那么美。也许会遇到以下几个问题。
    1.发布端的视频都不清晰。
    2.发布端的视频清晰,客户端接受到的视频不清晰。
    冥冥H.264视频编码备受推崇,高清的帽子早戴上了。为什么会这样呢。这里就将一点小细节说说吧。
    1.不仅H.264那块的设置,你要设置好。Camera那里同样要设置好。如果你仅仅设置了H.264编码这里,却漏掉了设置Camera这块,你就会遇到上边的问题。
    2.如果仅仅设置了Camera的setMode,那么你发布端的视频会是清晰的。如果还设置了setQuality。那么发布端和收看端都会有比较好的效果。
    3.你H.264编码这边将视频分辨率,帧频设置成很高,并且Camera这里也这样设置。那么你的视频效果是杠杠的。不过,这个时候带来的后果就是字节量变大,占用的带宽很大很大。我将分辨率设置成640*480,帧频设置成30。上行的带宽达到400多K/S。视频获取源如果晃动下,会更厉害。所以,根据需要,可以适当的降低分辨率和帧频。即使你降低了分辨率,在Vedio那里,也是可以放大的。

    那么最后,还是贴出code:

                _nsVideo = new NetStream(Controller.instance.fmser.nc);
                _nsVideo.client = this;
                _nsVideo.bufferTime = 0;
                
                var h264Settings:H264VideoStreamSettings = new H264VideoStreamSettings();
                h264Settings.setProfileLevel(H264Profile.BASELINE , H264Level.LEVEL_5_1);
                h264Settings.setMode(320,240,15);
                h264Settings.setQuality(0,80);
                h264Settings.setKeyFrameInterval(15);
                _nsVideo.videoStreamSettings = h264Settings;
                
                _cam = Camera.getCamera();
                if(_cam)
                {
                    _cam.setMode(320,240,15,false);
                    _cam.setQuality(0,80);
                    _nsVideo.attachCamera(_cam);
                }
  • 相关阅读:
    Android作业10/21
    Android作业10/07
    Android作业0930
    Android作业 0923
    第四周作业
    第七周
    第六周
    第四周作业
    3.10第二次
    jsp第一次作业
  • 原文地址:https://www.cnblogs.com/coolsundy/p/4893585.html
Copyright © 2020-2023  润新知