智能多媒体服务

  • 智能多媒体服务 > 常见问题 > 音视频处理 >使用七牛进行视频的剪辑

    使用七牛进行视频的剪辑

    最近更新时间: 2019-01-07 16:16:27

    七牛提供了很丰富的一视频处理功能, 比如视频转码, 截图, 水印,旋转, 切片等, 这篇简单介绍下视频剪辑的简单操作。

    比如我的七牛空间中有一个 MP4 文件:http://dn-odum9helk.qbox.me/wangjiawei/1.mp4 。 我们先来看下这个 MP4 的视频信息, 我们可以看到一个视频的时长信息"duration": "239.285333"表示 239 秒。现在我们打算做这样的截取从第一分钟开始,截取时长为一分钟。 我们来看下我们的音视频处理接口, 其中有两个参数:

    参数名称 类别 必填 说明
    <Format> A/V 目标视频的格式(比如 flv、mp4 等),参考 [支持转换的视频格式]
    /ss/<SeekStart> A/V 指定视频截取的开始时间,单位:秒。用于视频截取,从一段视频中截取一段视频。
    /t/<Duration> V 指定视频截取的长度,单位:秒。用于视频截取,从一段视频中截取一段视频。

    可以用来做视频剪辑。

    • 根据需求我们可以将开始时间 ss 设置为 60, 剪辑时长一分钟,可以将 t 设置为 60, 这样我们的处理规则就是:avthumb/mp4/ss/60/t/60

    • 然后使用我们的 PFOP 即可以将视频截取出来。

    • 但是这样处理后的文件名是不规则的, 如果你想指定处理后的文件名可以参考我们的 saveas 接口 。 比如我们想处理后保存在空间rwxf, 文件名保存成processed.mp4

      1. 我们首先需要对 rwxf:processed.mp4 进行urlsafebase64编码后得到 cnd4Zjpwcm9jZXNzZWQubXA0
      2. 这样我们的处理命令就变成了:avthumb/mp4/ss/60/t/60|saveas/cnd4Zjpwcm9jZXNzZWQubXA0
    • 进行 PFOP 处理后,如果想要查询处理的状态可以通过持久化状态查询接口来进行查询。

    下面我们给一个简单的 php demo:

    <?php
    require_once __DIR__. '/../autoload.php';
    
    use Qiniu\Auth;
    use Qiniu\Processing\PersistentFop;
    
    $accessKey = '<your_ak>';
    $secretKey = '<your_sk>';
    $auth = new Auth($accessKey, $secretKey);
    $config = new \Qiniu\Config();
    
    $bucket = 'rwxf';
    $key = '1.mp4';   
    $pipeline = 'abc'; //队列名称,使用独立队列可以加快处理速度。  
    $pfop = new PersistentFop($auth, $config);
    $savedkey = 'processed.mp4';
    $entry = \Qiniu\base64_urlSafeEncode("$bucket:$savedkey");
    $fops = "avthumb/mp4/ss/60/t/60|saveas/$entry";
    list($id, $err) = $pfop->execute($bucket, $key, $fops);
    echo "\n====> pfop avthumb result: \n";
    if ($err != null) 
    {            
         var_dump($err);
    } 
    else 
    {            
         echo "PersistentFop Id: $id\n";
    }
    

    以上代码要配合我们的 phpsdk 才可以运行。

    以上内容是否对您有帮助?
  • Qvm free helper
    Close