@@ -438,4 +438,101 @@ public function queryProcessResult($taskIds)
438438 $ video = new Api \Pretreat ($ this ->config );
439439 return $ video ->query ($ taskIds , '/result/ ' );
440440 }
441+
442+ /**
443+ * 多个 m3u8 文件拼接
444+ * @param array $files 保存在又拍云云存储中的多个 m3u8 文件路径
445+ * @param string $saveAs 拼接生成的新 m3u8 文件保存路径
446+ *
447+ * @return array 见 [m3u8 拼接 - 响应](http://docs.upyun.com/cloud/sync_video/#_3)
448+ */
449+ public function m3u8Concat ($ files , $ saveAs )
450+ {
451+ $ p = new Api \SyncVideo ($ this ->config );
452+ return $ p ->process ([
453+ 'm3u8s ' => $ files ,
454+ 'save_as ' => $ saveAs ,
455+ ], '/m3u8er/concat ' );
456+ }
457+
458+ /**
459+ * 单个 m3u8 文件剪辑
460+ * @param string $file 需要剪辑的又拍云云存储中的 m3u8 文件路径
461+ * @param string $saveAs 剪辑完成后新的 m3u8 文件保存路径
462+ * @param array $slice 需要被保留或删除的片段。
463+ * @param bool $$isInclude 默认为 `true` 表示 `$slice` 参数描述的片段被保留,否则表示 `$slice` 参数描述的片段被删除
464+ * @param bool $index 指定 `$slice` 参数的格式,默认为 `false` 表示使用时间范围描述片段,单位秒:`[<开始时间>, <结束时间>]`;`true` 表示使用 `m3u8` 文件的分片序号,从 0 开始,这种方式可以一次对多个片段操作
465+ *
466+ * @return array 见 [m3u8 剪辑 - 响应](http://docs.upyun.com/cloud/sync_video/#_6)
467+ */
468+ public function m3u8Clip ($ file , $ saveAs , $ slice = array (), $ isInclude = true , $ index = false )
469+ {
470+ $ p = new Api \SyncVideo ($ this ->config );
471+ $ params = [
472+ 'm3u8 ' => $ file ,
473+ 'save_as ' => $ saveAs ,
474+ 'index ' => $ index ,
475+ ];
476+ if ($ $ isInclude ) {
477+ $ params ['include ' ] = $ slice ;
478+ } else {
479+ $ params ['exclude ' ] = $ slice ;
480+ }
481+ return $ p ->process ($ params , '/m3u8er/clip ' );
482+ }
483+
484+ /**
485+ * 获取单个 m3u8 文件描述信息
486+ * @param string $file 又拍云云存储的中的 m3u8 文件路径
487+ *
488+ * @return array 见 [获取 m3u8 信息 - 响应](http://docs.upyun.com/cloud/sync_video/#_6)
489+ */
490+ public function m3u8Meta ($ file )
491+ {
492+ $ p = new Api \SyncVideo ($ this ->config );
493+ return $ p ->process ([
494+ 'm3u8 ' => $ file ,
495+ ], '/m3u8er/get_meta ' );
496+ }
497+
498+ /**
499+ * 视频截图,可以对 mp4、m3u8 等视频文件进行截图
500+ * @param string $file 需要截图的又拍云云存储中的视频文件路径
501+ * @param string $saveAs 截图保存路径
502+ * @param string $point 截图时间点,`HH:MM:SS` 格式
503+ * @param string $size 截图尺寸 `宽x高` 格式的字符串。默认和视频尺寸一致
504+ * @param string $format 截图保存的格式,默认根据 `$saveAs` 参数的后缀生成,可以指定 `jpg | png | webp` 三种格式
505+ *
506+ * @return array 见 [视频截图 - 响应](http://docs.upyun.com/cloud/sync_video/#m3u8_2)
507+ */
508+ public function snapshot ($ file , $ saveAs , $ point , $ size = '' , $ format = '' )
509+ {
510+ $ p = new Api \SyncVideo ($ this ->config );
511+ $ params = [
512+ 'source ' => $ file ,
513+ 'save_as ' => $ saveAs ,
514+ 'point ' => $ point ,
515+ ];
516+ if ($ size ) {
517+ $ params ['size ' ] = $ size ;
518+ }
519+ if ($ format ) {
520+ $ params ['format ' ] = $ format ;
521+ }
522+ return $ p ->process ($ params , '/snapshot ' );
523+ }
524+
525+ /**
526+ * 获取音视频文件元信息
527+ * @param string $file 又拍云云存储的中的音视频文件路径
528+ *
529+ * @return array 见 [获取音视频文件信息 - 响应](http://docs.upyun.com/cloud/sync_video/#_16)
530+ */
531+ public function avMeta ($ file )
532+ {
533+ $ p = new Api \SyncVideo ($ this ->config );
534+ return $ p ->process ([
535+ 'source ' => $ file ,
536+ ], '/avmeta/get_meta ' );
537+ }
441538}
0 commit comments