短视频矩阵系统源码部署开发分享

 一、目录及主要文件说明

  • bootstrap目录,存放框架引导及启动文件,非底层改动,无需修改。其中的functions.inc中可以定义一些全局函数
  • error目录,存放404、500等常见错误模板文件,非需勿动
  • includes目录,drupal框架引导文件,非需勿动
  • libs目录,存放框架常用类库,类似于zend framework结构,非需勿动
  • mobile目录,开发h5存储的静态文件目录
  • modules目录,框架常用类库,非需勿动
  • public目录,存放全局常用img/css/js/font等常用静态文件,可以分目录分类存放

二、redis数据存储

Redis是一个开源的键值对存储数据库,它支持多种数据结构,如字符串、列表、哈希表、集合等。Redis的特点是速度快、可靠性高、支持事务、支持持久化、支持复制等功能,使其广泛应用于缓存、计数器、队列、消息发布与订阅等场景。

Redis的使用方式类似于普通的键值对存储,用户可以使用set、get等命令来操作数据。同时,Redis还提供了丰富的数据结构,如list、set、hash等,在使用时可以根据不同的需求选择不同的数据结构。

Redis的优点在于其快速、高效的数据存储和查询能力,使其在对速度有要求的应用中尤为适用。而且通过支持多种数据结构,Redis也可以满足不同应用场景的需求,如缓存、计数器、消息队列等。

三、源代码功能同步方式

源码同步技术是指通过网络将一个软件项目的源代码从一个位置同步到另一个位置,以实现代码共享、协作开发等功能的技术。

常用的源码同步技术包括:

  1. Git:是一种基于分布式版本控制系统的源码同步技术。通过Git,可以创建不同的分支、合并代码、版本控制等操作。

  2. SVN:是一种集中式版本控制系统,可以用于同步源代码。SVN可以记录文件的历史版本,还可以对文件进行版本控制。

  3. Mercurial:是一种分布式版本控制系统,可以实现源码同步、合并等功能。Mercurial的使用方法类似于Git。

  4. Perforce:是一种集中式版本控制系统,可以实现源码同步、版本控制等功能。Perforce可以跨平台使用。

 四、功能构建

1. 首先创建一个创意工程,并上传相应素材文件

2. 选择对应的视频素材剪辑模式,创建剪辑计划

3. 制定投放计划,配置挂载信息

4. 投放记录预览及效果查看

5. 智能客服中台配置及线索收集

6. 短视频seo运营效果预览

 五、技术端开发(素材上传部分)

URL 请求

参数名称参数类型参数描述参数示例是否必填
open_idstring通过/oauth/access_token/获取,用户唯一标志ba253642-0590-40bc-9bdf-9a1334b94059true
access_tokenstring调用/oauth/access_token/生成的token,此token需要用户授权。act.1d1021d2aee3d41fee2d2add43456badMFZnrhFhfWotu3Ecuiuka27L56lrtrue

Body 请求

参数名称参数类型参数描述参数示例是否必填
media[]素材文件<nil>false

响应参数

参数名称参数类型参数描述参数示例
extrastruct<nil>
datastruct<nil>

$breadcrumbs = [
    ['title' => 'AI视频创意', 'link' => '#'],
    ['title' => '开始创作', 'link' => ''],
];
$this->buildBreadcrumbs($breadcrumbs);
//搜索专用
$keyword_type = $this->request->getStrParam('keyword_type');
$keyword = $this->request->getStrParam('keyword');
$this->output['keyword_type'] = $keyword_type;
$this->output['keyword'] = $keyword;

$dv_id = $this->request->getIntParam('dv_id');  //视频工程ID
$this->output['dv_id'] = $dv_id;
$type = $this->request->getIntParam('type', 0);   //素材类型
$scene = $this->request->getIntParam('scene', 1);
$this->output['scene'] = $scene;
//获取视频信息
$video_model = new App_Model_Douyin_MysqlVideoStorage();
$video_info = $video_model->getRowByIdSid($dv_id, $this->sid);
if (empty($video_info)) {
    plum_redirect_with_msg('视频创意工程不存在');
}

$mixed_video_mode = $video_info['dv_video_mode'];
if (in_array($mixed_video_mode, [11])) {    //智能图片组合
    $type = in_array($type, [0, 1]) ? 3 : $type;   //默认为图片素材类型
} else {
    $type = in_array($type, [0, 3]) ? 1 : $type;  //默认为视频素材类型
}

//获取素材列表
$where = [
    ['name' => 'dvm_ds_id', 'oper' => '=', 'value' => $this->sid],
    ['name' => 'dvm_dv_id', 'oper' => '=', 'value' => $dv_id],
    ['name' => 'dvm_material_type', 'oper' => '=', 'value' => $type]
];
//视频类型,区分混剪模式
if ($type == 1) {
    $where[] = ['name' => 'dvm_video_mixed_mode', 'oper' => '=', 'value' => $video_info['dv_video_mode']];
}
if (!empty($keyword_type)) {
    $where[] = ['name' => $keyword_type, 'oper' => 'like', 'value' => "%{$keyword}%"];
}
//智能场景组合,视频素材加场景值筛选
if ($type == 1 && $mixed_video_mode == 4) {
    $scene_model = new App_Model_Douyin_MysqlVideoSceneStorage();
    $scene_count = $scene_model->getCountByDvid($dv_id);
    if ($scene_count == 0 && $video_info['dv_video_use'] > 0) {
        for ($i = 1; $i <= $video_info['dv_video_use']; $i++) {
            $indata = [
                'dvs_ds_id' => $this->sid,
                'dvs_dv_id' => $dv_id,
                'dvs_name' => "场景" . $i,
                'dvs_duration' => $video_info['dv_video_shot'] * 1000,
                'dvs_

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值