web flash推流h264视频取消cbr

flash as3.0 推视频H264
关于视频质量

初次设置代码如下:

h264Setting.setProfileLevel(H264Profile.BASELINE, H264Level.LEVEL_3);
media_stream.videoStreamSettings = h264Setting;
camera.setKeyFrameInterval(av_gop);
camera.setMode(av_normal_width, av_normal_height, Number(av_normal_fps));
camera.setQuality(80000, 100);

编码后的视频在有晃动的情况下花屏轻微马赛克,mediainfo检测文件属性如下:


第二次设置如下:

h264Setting.setProfileLevel(H264Profile.BASELINE, H264Level.LEVEL_3);
media_stream.videoStreamSettings = h264Setting;
camera.setKeyFrameInterval(av_gop);
camera.setMode(av_normal_width, av_normal_height, Number(av_normal_fps));
camera.setQuality(0, 100);

编码后的视频在有晃动的情况下也是正常的,不过码率浮动上升,mediainfo检测文件属性如下:


关于setQuality的官方解释:
设置每秒的最大带宽或当前输出视频输入信号可以使用的画面质量。
要指定带宽,请为带宽传递一个值,并为品质传递 0。
要指定品质,请为带宽传递 0,并为品质传递一个值。
带宽值和品质值均由 Camera 参数覆盖。
flash as中关于H264编码,在flash 10以前默认是VBR,之后默认改成CBR。
所以,想设置CBR,camera.setQuality(80000, 0);
想设置VBR,camera.setQuality(0, 100);
两个同时设置,CBR生效。

posted @ 2018-05-29 16:47  水上云天  阅读(435)  评论(0编辑  收藏  举报