@@ -23,7 +23,7 @@ KSY Streamer Android SDK是金山云推出的 Android 平台上使用的软件
23
23
* 混音功能 (new) 可支持本地mp3,aac等格式
24
24
* 前置镜像功能 (new)
25
25
* 手动指定自动对焦测光区域 (new)
26
- * 软编模式下可添加图片及时间水印 (new)
26
+ * 可添加图片及时间水印 (new)
27
27
28
28
##使用方法
29
29
### 配置项目
@@ -100,6 +100,7 @@ KSYStreamerConfig.Builder builder = new KSYStreamerConfig.Builder();
100
100
| setEnableCameraMirror| 设置开启前置摄像头镜像,默认关闭|
101
101
| setBeautyFilter| 设置内置美颜类别(目前软编只支持一种)|
102
102
| setManualFocus| 设置开启手动指定对焦测光区域,默认关闭|
103
+ | setIFrameIntervalSec| 设置视频编码时的I帧间隔,单位为秒,float型|
103
104
104
105
其中分辨率等级可以设置为 RecorderConstants.VIDEO_RESOLUTION_360P,RecorderConstants.VIDEO_RESOLUTION_480P,RecorderConstants.VIDEO_RESOLUTION_540P或RecorderConstants.VIDEO_RESOLUTION_720P。内置美颜种类可以设置为FILTER_BEAUTY_DISABLE(不使用美颜)、FILTER_BEAUTY_DENOISE、FILTER_BEAUTY、FILTER_SKINWHITEN、FILTER_BEAUTY_PLUS或FILTER_BEAUTY_PLUS,其中软编只可以设置为FILTER_BEAUTY_DISABLE(不使用美颜)和FILTER_BEAUTY_DENOISE。
105
106
@@ -118,11 +119,11 @@ KSYStreamerConfig.Builder builder = new KSYStreamerConfig.Builder();
118
119
| KSYVIDEO_ENCODED_FRAMES_FAILED| -1003| 编码失败|
119
120
| KSYVIDEO_CODEC_OPEN_FAILED| -1004| 推流失败|
120
121
| KSYVIDEO_CODEC_GUESS_FORMAT_FAILED| -1005| 推流失败|
121
- | KSYVIDEO_CONNECT_FAILED | -1006| 推流失败|
122
- | KSYVIDEO_CONNECT_BREAK | -1007| 推流过程中断网|
122
+ | KSYVIDEO_OPEN_FILE_FAILED | -1006| 推流失败|
123
+ | KSYVIDEO_WRITE_FRAME_FAILED | -1007| 推流过程中断网|
123
124
| KSYVIDEO_OPEN_CAMERA_FAIL| -2001| 打开摄像头失败|
124
125
| KSYVIDEO_CAMERA_DISABLED| -2002| 打开摄像头失败|
125
- | KSYVIDEO_FRAME_DATA_SEND_SLOW | 3001| 网络状况不佳|
126
+ | KSYVIDEO_NETWORK_NOT_GOOD | 3001| 网络状况不佳|
126
127
| KSYVIDEO_EST_BW_RAISE| 3002| 码率开始上调的通知|
127
128
| KSYVIDEO_EST_BW_DROP| 3003| 码率开始下调的通知|
128
129
@@ -292,8 +293,14 @@ varying vec2 vTextureCoord;
292
293
uniform samplerExternalOES sTexture;
293
294
```
294
295
296
+
295
297
具体的,可以参考示例的滤镜[ DEMOFILTER] ( https://github.com/ksvc/KSYStreamer_Android/blob/master/demo/src/com/ksy/recordlib/demo/DEMOFILTER.java ) 。
296
-
298
+
299
+ . GroupFilter模式
300
+ 支持GroupFilter的模式,可以嵌套多个滤镜实现一个材质的滤镜组处理,关于GroupFilter的模式例子可以参看[ GroupFilterDemo] (https://github.com/ksvc/KSYStreamer_Android/blob/master/demo/src/com/ksy/recordlib/demo/KSYImageGroupFilter.java)。
301
+ 注意:GroupFilter嵌套的滤镜第一个同普通KSYImageGroupFilter相同。
302
+ *** 从第二个滤镜一直到最后一个滤镜由于不需要进行texture vertex变换,故需要使用NO_TRANSFORMER_VERTEX_SHADER的VERTEX_SHADER;同时在Fragment Shader中使用sampler2D格式纹理作为输入纹理,具体请参考[ GroupFilterDemo] (https://github.com/ksvc/KSYStreamer_Android/blob/master/demo/src/com/ksy/recordlib/demo/KSYImageGroupFilter.java )***
303
+
297
304
. 混音功能描述如下:
298
305
299
306
- 在耳机模式(接口自动对Mico采集的音频做了混响处理):调用startMusic播放本地音乐和Mico声音开始混音,调用示例如下:
@@ -371,43 +378,46 @@ mStreamer.setDisplayPreview(* extends com.ksy.recordlib.service.view.CameraGLSur
371
378
``` java
372
379
/**
373
380
* 设置并显示logo水印
374
- * @param path logo图片文件的路径
375
- * @param x logo的显示位置,相对于视频
376
- * @param y logo的显示位置,相对于视频
377
- * @param w logo的显示宽度
378
- * @param h logo的显示高度
381
+ *
382
+ * @param path logo图片文件的路径
383
+ * @param x logo的显示位置,0-1之间,相对于视频
384
+ * @param y logo的显示位置,0-1之间,相对于视频
385
+ * @param w logo的显示宽度,0-1之间,相对于视频
386
+ * @param h logo的显示高度,0-1之间,相对于视频
379
387
* @param alpha logo的透明度,0-1之间
380
388
*/
381
- void showWaterMarkLogo(String path, int x, int y, int w, int h, float alpha);
389
+ public void showWaterMarkLogo(String path, float x, float y, float w, float h, float alpha);
382
390
383
391
/**
384
392
* 隐藏logo水印
385
393
*/
386
- void hideWaterMarkLogo();
394
+ public void hideWaterMarkLogo();
387
395
```
388
396
389
397
显示、隐藏时间戳水印时调用如下接口:
390
398
``` java
391
399
/**
392
400
* 在推流视频中显示时间水印
393
- * @param x 时间显示位置,相对于视频
394
- * @param y 时间显示位置,相对于视频
395
- * @param fontColor 显示时间的字体颜色
396
- * @param fontSize 显示时间的字体大小
397
- * @param alpha 显示时间的透明度
401
+ *
402
+ * @param x 时间戳的显示位置,0-1之间,相对于视频
403
+ * @param y 时间戳的显示位置,0-1之间,相对于视频
404
+ * @param w 时间戳的显示宽度,0-1之间,相对于视频,高度会自适应
405
+ * @param color 时间戳的颜色
406
+ * @param alpha 时间戳的显示透明度,0-1之间
398
407
*/
399
- void showWaterMarkTime(int x, int y, int fontColor, float fontSize, float alpha);
408
+ public void showWaterMarkTime(float x, float y, float w, int color, float alpha);
409
+ }
400
410
401
411
/**
402
412
* 隐藏推流视频中的时间水印
403
413
*/
404
- void hideWaterMarkTime();
414
+ public void hideWaterMarkTime();
405
415
```
406
416
407
417
例如:
408
418
``` java
409
- mStreamer. showWaterMarkLogo(mLogoPath, 30 , 40 , 96 , 96 , 0.8f );
410
- mStreamer. showWaterMarkTime(10 , 10 , Color . RED , 16 , 1.0f );
419
+ mStreamer. showWaterMarkLogo(mLogoPath, 0.08f , 0.06f , 0.27f , 0.15f , 0.8f );
420
+ mStreamer. showWaterMarkTime(0.02f , 0.015f , 0.4f , Color . RED , 1.0f );
411
421
```
412
422
413
423
. 注意事项
0 commit comments