下面是一段代码示例,展示了如何利用一个HTTPProvider从Wowza直播流中获得一个截帧图,它无需使用转码插件(Transcoder Addon),也不需要任何第三方工具(例如FFMPEG)来协助,它自己就可以独立完成这个工作,它实际上利用了原来Transcoder中的解码部分的功能并提供了一个新的API,而无须启用Transcoder功能(相当于Decoder部分已经从Transcoder Addon中分离出来了,当然,这是我的理解)。
注意:
1、这个功能依赖Wowza Streaming Engine 4.5.0及以上版本。
2、如果你用试用授权来测试这个功能,那么你的截帧图上右下角会有一个Wowza logo的水印。当然了,正式授权是不会有这个水印的
下面是这个新API的使用示例:
在这个API中,截帧图会以一个RGBA的字节数组形式来返回。 然后,你可以利用ThumbnailerUtils.nativeImageToBufferedImage(response);方法来讲这个字节数组转化为一个二进制的图像数据流(Java BufferedImage)。 下面是用这个API将其转化一个JPEG或PNG格式的图片的代码示例:
下面是使用这些新API的HTTPProvider的完整代码:
这个HTTPProvider需要被部署在Wowza Streaming Engine server 中,你需要将下面的配置添加到[install-dir]/conf/VHost.xml文件中。
注意:不要将它添加为第一个HTTPProvider,另外,这个配置是针对端口8086 (admin)的:
调用这个HTTPProvider的URL的格式如下:
application: Wowza应用名(必需)
streamname: 流名字(必需)
size: 图像大小(必需)
fitmode: 适配模式,让视频帧如何适配你要求的图像大小比例,可选的值包括letterbox, stretch, fit-height, fit-width, match-source, crop, 默认是letterbox
crop: 从原图中扣图的像素
format: 图像格式,可选的值包括jpeg和png,默认是jpeg
举例说明: