如何在七牛上传视频的时候,同时截取前30秒作为视频的Demo?

我们希望在上传视频的时候,除了上传本身,每个视频都能生成一个包含前30秒内容的短视频作为demo,也就是截取前30秒生成一个i哦视频。

查了文档,看到一个叫做“音视频切片”的API,但是似乎不太符合这个场景。

不知道七牛有没有这样的功能?

阅读 5k
1 个回答

自己解决了,找到了这篇文档 https://developer.qiniu.com/d...

服务端用的Ruby on Rails,解决方案如下,有一个action名为 make_demo

    def make_demo
      key         = params[:key]
      bucket      = Rails.application.secrets.qiniu['video_bucket']
      saveas_key  = Base64.urlsafe_encode64("#{bucket}:video-demo-#{Digest::MD5.hexdigest(key)}.#{key.split('.').last}")
      fops = "avthumb/mp4/ss/0/t/30|saveas/#{saveas_key}"
      notify_url  = "staging.change.so/qiniu/notify.json"

      pfops = Qiniu::Fop::Persistance::PfopPolicy.new(
        bucket,
        key,
        fops,
        nil
      )
      pfops.pipeline = Rails.application.secrets.qiniu['video_demo_maker_pipeline']

      code, result, response_headers = Qiniu::Fop::Persistance.pfop(pfops)

      Rails.logger.info code
      Rails.logger.info result

      if code == 200
        render json: { persistent_id: result['persistentId'] }
      else
        render json: { error: '视频预览创建失败' }
      end
    end
logo
七牛云问答
子站问答
访问
宣传栏