批量剪辑视频工具源码开发搭建分享

news/2024/7/10 20:06:07 标签: python, 产品运营, 源码软件, 开源软件, 开源

搭建步骤

1. 首先需要根据自身产品确定视频类型及需要实现的视频效果

2. 根据预期视频效果选择视频上传模式,并将视频素材进行上传

3. 添加音频、字幕,标题等与素材进行组合。

4. 设置投放计划,包括:视频标题、视频话题等

5. 预览生成的视频效果,选择喜欢的视频进行投放。

开发逻辑及功能展示

开发语言及开发环境

开发语言:PHP

开发环境:源码所需服务器配置 1、规格:最低4核8G 2、硬盘:不低于100G 3、带宽:可以使用按量付费,100M峰值带宽 4、系统:CentOS7或CentOS8

视频文件要求:

  • 为了更好的观看体验,推荐上传16:9,分辨率为720p(1280x720)及以上的竖版视频。
  • 支持常用视频格式,推荐使用 mp4 
  • 视频文件大小不超过128M
  • 带品牌logo或品牌水印的视频,会命中抖音的审核逻辑,有比较大的概率导致分享视频推荐降权处理/分享视频下架处理/分享账号被封禁处理。强烈建议第三方应用自行处理好分享内容中的不合规水印。
  • 视频审核逻辑与端上一致。

功能介绍:

1. 视频字幕自动生成:可以设置几段文案 视频自动生成字幕效果

2. 剪辑系统的素材处理:对于素材的处理,系统也做了多平台兼容的优化,保障生成出来的视频符合每个平台的审核规则,提升作品的发布成功率。

 3.  1000+账号轻松管理的运营秘籍

小编了解到创作工具主要为调用各平台官方接口的形式,来进行管理,也同时授权无数+账号信息,当然啦,前提还是需要各位达人们有足够多的账号呦。

4. 目前支持接入的平台也是同时涵盖了多个主流短视频平台

开发代码展示:

{
  "data": {
    "error_code": 0,
    "description": "",
    "video": {
      "video_id": "v0200f450000bn8c6aa0ifki8fikg1b0",
      "width": 720,
      "height": 1280
    }
  },
  "extra": {
    "error_code": 0,
    "description": "",
    "sub_error_code": 0,
    "sub_description": "",
    "logid": "202008121419360101980821035705926A",
    "now": 1597213176393
  }
}

* 创建工程项目
     */
    public function createProjectAction() {
        $this->useLayout('dydqtshoppc-head.html');
        $id     = $this->request->getIntParam('id');

        //获取视频信息
        $video_model    = new App_Model_Douyin_MysqlVideoStorage();
        $video_info     = $video_model->getRowByIdSid($id, $this->sid);
        $use_platform   = empty($video_info['dv_use_platform']) ? [] : json_decode($video_info['dv_use_platform'], 1);

        if (!empty($video_info)) {
            $video_cfg  = empty($video_info['dv_platform']) ? null : json_decode($video_info['dv_platform'], 1);
        }

        //视频混剪模式
        $video_mixed_mode = plum_parse_config('project_mixed_mode','dydqt/project');

        $this->output['video_info']     = $video_info;
        $this->output['use_platform']   = $use_platform;
        $this->output['video_cfg']      = empty($video_cfg) ? null : $video_cfg;
        $this->output['video_mixed_mode']   = $video_mixed_mode;
        $this->output['font_map']   = (new App_Plugin_Ffmpeg_VideoPlugin())->getFontMap();
        $color_list = plum_parse_config('color_list', 'config');
        $this->output['color_list'] = $color_list;
        //火山引擎、腾讯云配音
        $huoshan_vcn    = plum_parse_config('hsyq_vcn', 'system');
        $tencent_vcn    = plum_parse_config('txy_vcn', 'system');
        $this->output['audio_vcn']  = empty($tencent_vcn) ? $huoshan_vcn : $tencent_vcn;
        $this->output['platform_list']  = plum_parse_config('platform_list', 'dydqt/project');
        $this->displaySmarty('dydqtshoppc/video/create-project.tpl');
    }

    /*
     * 添加/编辑视频
     */
    public function addVideoAction(){
        $this->useLayout('dydqtshoppc-head.html');
        $id     = $this->request->getIntParam('id');

        //获取视频信息
        $Video_model    = new App_Model_Douyin_MysqlVideoStorage();
        $video_info     = $Video_model->getRowByIdSid($id, $this->sid);

        //视频混剪模式
        $video_mixed_mode = plum_parse_config('project_mixed_mode','dydqt/project');

        $this->output['video_info']     = $video_info;
        $this->output['video_mixed_mode']   = $video_mixed_mode;
        $this->displaySmarty('dydqtshoppc/video/addVideo.html');
    }
    /*
     * 保存工程配置
     */
    public function saveItemConfigAction() {
        $dv_id  = $this->request->getIntParam('dv_id');
        unset($_REQUEST['q']);
        unset($_REQUEST['dv_id']);
        //获取视频信息
        $video_model    = new App_Model_Douyin_MysqlVideoStorage();
        $video_info     = $video_model->getRowByIdSid($dv_id, $this->sid);
        if (empty($video_info)) {
            $this->displayJsonError('参数错误');
        }
        $curr_platform  = json_decode($video_info['dv_platform'], 1);
        $curr_platform  = is_null($curr_platform) ? [] : $curr_platform;
        //发音人合集
        if (isset($_REQUEST['a_vcn'])) {
            $vcn    = $this->request->getStrParam('a_vcn');
            $vcn    = explode(',', $vcn);
            unset($_REQUEST['a_vcn']);
            $curr_platform['vcn']   = array_combine($vcn, $vcn);
        }


http://www.niftyadmin.cn/n/385913.html

相关文章

使用kettle进行数据统计

1.使用kettle设计一个能生成100个取值范围为0到100随机整数的转换。 为了完成该转换,需要使用生成记录控件、生成随机数控件、计算器控件及字段选择控件。控件布局如下图所示 生成记录控件可以在限制框内指定生成记录的个数,具体配置如图所示 生成随机数…

白天过节,晚上了解了下 Threejs3D

文章目录 I. 介绍Three.js 3DA. 什么是Three.jsB. Three.js的历史C. Three.js的应用领域 II. 开始使用Three.js 3DA. 安装和引入Three.jsB. 创建Three.js场景C. 添加3D对象到场景D. 控制相机和灯光E. 渲染场景 III. Three.js 3D中的基本概念A. 坐标系统和变换B. 材质和纹理C. 几…

C语言:笔记202305

C语言:大伟笔记202305 变量作用域(scope) 代码块作用域 :{} 文件作用域 :写的地方到文件结束 原型作用域 :函数原型声明的时候的变量名可以随便 写 函数作用域 :配合goto语句的标签 链接属性 ​ 编译器编译c源码…

SpringCloud(2)

服务拆分和远程调用 任何分布式架构都离不开服务的拆分,微服务也是一样。 2.1.服务拆分原则 这里我总结了微服务拆分时的几个原则: 不同微服务,不要重复开发相同业务微服务数据独立,不要访问其它微服务的数据库微服务可以将自…

自定义显式锁BooleanLock

背景 synchronized关键字的缺陷 构造一个显式的BooleanLock,使其在具备synchronized关键字所有功能的同时又具备可中断和lock超时的功能。 定义Lock接口 public interface Lock {void lock() throws InterruptedException;void lock(long mills) throws Interru…

supervisor详解

1 supervisor简介 Supervisor是用Python开发的一套通用的进程管理程序,能将一个普通的命令行进程变为后台daemon,并监控进程状态,异常退出时能自动重启。它是通过fork/exec的方式把这些被管理的进程当作supervisor的子进程来启动&#xff0c…

香橙派4和树莓派4B构建K8S集群实践之六:App服务部署

目录 1. 说明 1.1 关于PHPNginx体系的WebApp,这里将实践两种部署模式: 1.2 配置清单 2. PHPNginx体系的WebApp部署 2.1 单节点多容器模式A 2.1.1 准备工作 2.2.2 部署 2.2.3 访问效果 2.2 多节点单容器模式B 2.2.1 准备工作 2.2 配置虚拟主机 …

Linux---守护进程

window称为:服务 区分以下四点: 会话会话首进程进程组组长进程 不想让会话关闭,但是会话中的进程不想关闭,解决方法:把当前进程脱离出来,放到一个新会话中;在新会话中成为会话首进程 那么表示…