流媒体技术世界——分享技术,增值服务
2015年11月20日发布新版本Wowza Streaming Engine 4.3.0.01

Wowza公司2015年11月20日发布新版本Wowza Streaming Engine 4.3.0.01,它是对4.3版本的一次小更新,下面总结一些相对于4.3版本主要的软件更新和修复:


了解更多wowza产品的技术细节

  • 实现了 MPEG-DASH的 WebVTT VOD 字幕(caption)
  • 增加及修改了下面的配置项,从而改进了 ServerListenerStreamDemoPublisher:
    • 将"repeat"改名为"playlistRepeat" (但"repeat" 依然是支持的) - 如果是 true, playlist items 将会重复发布
    • 增加了 "publishDuration" - 是一个时间,精确到秒,是这个流发布的时间(格式: HH:MM:SS.mmm)
    • 增加了 "publishRepeat" - 如果是true, 当"publishDuration"的时间过去后,这个流会循环地重复发布("publishDuration" 必须大于0,默认是false)
    • 增加了 "publishPauseTime" - 是一个时间,精确到秒,如果"publishRepeat"被设置为true,则这个时间代表在重新发布前暂停的时间(格式: HH:MM:SS.mmm, 默认是1秒)
  • 在Apple HLS (cupertino) LiveStreamPacketizers/Properties 中增加了一个整数参数,叫做cupertinoMaxTimecodeGap (单位是毫秒). 如果在直播输入流中两个数据包之间的间隔时间大于这个参数的时间,那么Hls的打包会被重置(reset)(默认是-1,代表禁用这个功能)
  • 增加了一个新的server listener (com.wowza.wms.module.ServerListenerTranscoderPreload),在服务器启动后加载Transcoder相关类库完成时触发,这样避免了加载Transcoder太慢引发的问题
  • 修复了关于Transcoder B帧时间戳(timecode)的Bug,避免了DTS 和 PTS 差值为负数的问题
  • 修复了SecureToken功能在生成hash字符串时的bug,之前的版本当使用RTMP协议并在播放URL中带有媒体前缀(例如mp3:)时,Wowza 在生成hash时没有考虑这个前缀。
  • 修改了PushPublishing 输出流的Session不能正确地重置的bug,之前的版本当 Wowza 的输入流发生间歇性的重连后,会导致一些僵死的Push推送Session
  • 改进了直播流录制功能,以保证音视频同步,在通过ync by trimming audio and video from the start of recordings if audio is delayed from video. 以下的Streams/Properties 参数可以用来加强对直播流录制的控制:
    • recordDebugRecordWrites - 打开录制时的debug日志输出(默认是false)
    • recordVersionFile - 如果是true, file versions are created if a previous file with the same name exists (默认是true, 也支持将这个参数名写为versionFile)
    • recordWaitForVideoKeyFrame - 如果是true, 那么在一个关键帧开始前的音频、视频、数据都将被去除(默认是true)
    • recordUseCalculatedAudioTimecodes - 如果是true, 对于音频帧,在计算时间戳(timecodes)时会更精确(默认是true)
    • recordSkipKeyFrameIfNoAudio - 如果是true, 并且recordWaitForVideoKeyFrame也是true, 那么如果在一定的时间内,没有音频的关键帧都将被跳过(默认是true,会去除掉更多的数据,来确保音视频同步)
    • recordSkipKeyFrameIfNoAudioTolerance - 是recordSkipKeyFrameIfNoAudio参数的一个限值,单位毫秒(默认是150毫秒)
    • recordSkipKeyFrameIfNoAudioMaxDropTime - 单位毫秒,是recordSkipKeyFrameIfNoAudio 要去除掉的时长。(默认是4000毫秒)注:具体含义还有待测试
    • recordMinBufferTime - 一个时长,单位毫秒,录制写文件前一个缓存时间
    • recordMaxWaitingPackets - 一个最大时长,单位毫秒,a packet remains in the synchronization buffer before it's flushed
  • 增加了一个API接口来获得一个输入流的帧率:
    这个帧率的数据来源有2种,包括测量值(IMediaStream.PUBLISH_FRAMERATE_SOURCE_MEASURE) 和 metadata中的值 (IMediaStream.PUBLISH_FRAMERATE_SOURCE_METADATA):
    • int IMediaStream.getPublishFramerateVideo(); // if metadata available, it is returned; if not, measured is returned
    • int IMediaStream.getPublishFramerateAudio(); // if metadata available, it is returned; if not, measured is returned
    • int IMediaStream.getPublishFramerateVideo(int source); // IMediaStream.PUBLISH_FRAMERATE_SOURCE_MEASURE or IMediaStream.PUBLISH_FRAMERATE_SOURCE_METADATA
    • int IMediaStream.getPublishFramerateAudio(int source); // IMediaStream.PUBLISH_FRAMERATE_SOURCE_MEASURE or IMediaStream.PUBLISH_FRAMERATE_SOURCE_METADATA
  • 增加了一个API接口来获得已经接收到的来自一个直播输入流的音频帧、视频帧、数据帧的数量:
    • long IMediaStream.getPublishFrameCountVideo();
    • long IMediaStream.getPublishFrameCountAudio();
    • long IMediaStream.getPublishFrameCountData();
  • 增加了一个API接口来获得一个输入流最近的10个视频GOP之间的关键帧间隔(最近的GOP是数组中的第一个):
    • int[] IMediaStream.getPublishKeyFrameIntervalsVideo();
  • 改进了对输入流Codec的检测,现在通过onMetaData事件可以更早的检测到codec信息
  • 修复了对SMIL文件中<video>实体的查询参数(query parameter)的支持问题
  • 修复了直播流录制分割文件名的一些bug
  • 增加了TimedText布尔类型的参数"cupertinoLiveWebVTTAddSpecialEmptyCaption" ,用来在直播流的webVTT subtitle中创建一个特殊的空白的chunk(默认是true)
  • 增加了IRTPPacketizerMPEGTSPacketNotify 接口,用来监听和控制MPEG-TS输出流
  • 在Streams/Property中增加了一个字符串参数"mpegtsPacketNotifyClass",它是一个实现了IRTPPacketizerMPEGTSPacketNotify接口的类的完整Class类路径,在MMPEG-TS播放时,这个类会在处理每一个AMF数据包时被调用
  • 增加了以下RTPPacketizerMPEGTS 的API,用来将ID3 metadata 注入MPEG-TS流中:
    • RTPPacketizerMPEGTS.addDataEvent(long timecode, byte[] buffer, int offset, int len) (timecode should be aligned with stream being output, byte[] should be serialization of ID3Frames object - id3Frames.serialize(true, false, ID3Frames.ID3HEADERFLAGS_DEFAULT))
    • RTPPacketizerMPEGTS.setDataPID(int dataPID) (set to RTPPacketizerMPEGTS.DEFAULT_PID_DATA in init method of IRTPPacketizerMPEGTSPacketNotify to turn on ID3 metadata output in MPEG-TS program map)
匿名用户
评论

我们的地址


北京市朝阳区管庄西里建基商务楼423室


邮编:100024

关于我们


北京联方信科信息技术有限责任公司


官网:www.ttstream.com

联系我们


王经理:phone


柳经理:phone

京ICP备14033868号-2