短视频矩阵系统源码开发需要用到以下技术:

 'title_font'    => $title_font,
            'title_size'    => $title_size,
            'title_color'   => $title_color,
            'title_position'=> $title_position,
            'write_font'    => $write_font,
            'write_size'    => $write_size,
            'write_color'   => $write_color,
            'write_position'=> $write_position,
            'select'    => $select_type,
            'vcn'   => $vcn_on,
            'yushu' => 50,
            'yinliang'  => 50,
            'bgm'   => $bgm,
            'videobg'   => $video_bg,
            'bgcolor'   => $color_list,
            'sigma'     => $sigma_val,
        ];
        //主表数据
        $updata = [
            'dv_title'      => $video_name,
            'dv_video_mode' => $video_mixed,
            'dv_video_layout'   => $video_layout,
            'dv_video_shot' => $video_shot,
            'dv_video_count'=> $video_count,
            'dv_video_use'  => $video_use,
            'dv_video_duration'     => $video_duration,
            'dv_video_open' => 0,   //随机视频开幕
            'dv_video_transition'   => $video_transition,
            'dv_video_filter'       => $video_filter,
            'dv_video_effect'       => $video_effect,
            'dv_de_id'  => $select_type,//字幕配音形式
            'dv_use_only'   => $use_only,
            'dv_use_platform'   => json_encode($platform_list),
        ];

        if (empty($dv_id)) {//新增
            $indata = [
                'dv_s_id'       => $this->sid,
                'dv_platform'   => json_encode($video_cfg),
                'dv_create_time'=> time(),
            ];
            $indata = array_merge($updata, $indata);
            $ret    = $video_model->insertValue($indata);
        } else {//编辑
            $video_item = $video_model->getRowByIdSid($dv_id, $this->sid);
            if (empty($video_item)) {
                $this->displayJsonError('参数错误');
            }
            $curr_platform  = json_decode($video_item['dv_platform'], 1);
            $curr_platform  = is_null($curr_platform) ? [] : $curr_platform;
            $updata['dv_platform']  = json_encode(array_merge($curr_platform, $video_cfg));
            $ret    = $video_model->updateById($updata, $dv_id);
            //切换模式或更改场景组合数,则需要重新生成组合
            if($video_item['dv_video_mode'] != $video_mixed || $video_item['dv_video_use'] != $video_use){
                //清空素材排列组合及缓存视频
                $VideoMaterialPailie_model = new App_Model_Douyin_MysqlVideoMaterialPailieStorage();
                $VideoMaterialPailie_model->clearPailie($dv_id);
                //清除素材
                $video_meta_model   = new App_Model_Douyin_MysqlVideoMaterialStorage();
                $vm_where   = [
                    ['name' => 'dvm_ds_id', 'oper' => '=', 'value' => $this->sid],
                    ['name' => 'dvm_dv_id', 'oper' => '=', 'value' => $dv_id],
                ];
                $video_meta_list    = $video_meta_model->getList($vm_where, 0, 0);
                foreach ($video_meta_list as $item) {
                    //新旧模式相同,并且视频对应场景不大于新的场景数
                    if ($item['dvm_video_mixed_mode'] == $video_mixed && $item['dvm_scene'] <= $video_use) {
                        continue;
                        //与新模式不同,则清除
                    }
                    //场景顺序组合,减少了场景数
                    /*
                    if ($item['dvm_scene'] > $video_use) {

                    }
                    */
                    //智能混剪模式1,删除视频素材
                    if ($item['dvm_video_mixed_mode'] == 1 && $item['dvm_material_type'] == 1) {
                        $file_path  = PLUM_DIR_ROOT.$item['dvm_material_content'];
                        if (is_file($file_path)) {
                            unlink($file_path);
                        }
                    }
                    //视频素材删除ts素材
                    if ($item['dvm_material_type'] == 1) {
                        $file_path  = PLUM_DIR_ROOT.$item['dvm_material_videots'];
                        if (is_file($file_path)) {
                            unlink($file_path);
                        }
                    }
                    //视频素材及图片素材删除,其他素材保留
                    if (in_array($item['dvm_material_type'], [1,3])) {
                        $video_meta_model->deleteById($item['dvm_id']);

短视频矩阵系统源码开发需要用到以下技术:

 1.前端技术:HTML、CSS、JavaScript、Vue.js等前端框架。

2.后端技术:Java、Python、PHP等后端语言及相关框架,如Spring Boot、Django、Laravel等。

3.移动开发技术:Android、iOS开发技术。

4.视频处理技术:视频编解码、格式转换、视频剪辑等相关技术。

5.数据库技术:MySQL、Oracle等数据库。

6.服务端技术:Nginx、Tomcat等服务端开发相关技术。

7.云计算技术:阿里云、腾讯云等云计算平台相关技术。

8.安全技术:加密技术、防火墙等相关技术。

源码示例:

* 剪辑模式链接
     */
    private function output_mode_link() {
        $video_mixed_mode   = plum_parse_config('project_mixed_mode', 'dydqt/project');
        array_unshift($video_mixed_mode, [
            'title'  => '全部',
            'mode'  => 0,
            'desc'  => '',
        ]);

        foreach ($video_mixed_mode as &$item) {
            $item['link']   = "/dydqtshoppc/video/itemList?mode=".$item['mode'];
        }
        $this->output['video_mixed_mode']   = $video_mixed_mode;
    }
    /**
     * 视频列表
     */
    public function videoListAction() {
        //面包屑
        $breadcrumbs = [
            ['title' => '账号运营', 'link' => '#zhyy'],
            ['title' => '短视频管理', 'link' => '/video/videoList'],
        ];
        $this->buildBreadcrumbs($breadcrumbs);

        $add_time_range = $this->request->getStrParam('add_time_range');
        $keyword_type   = $this->request->getStrParam('keyword_type');
        $keyword        = $this->request->getStrParam('keyword');

        $where = [
            ['name' => 'dv_s_id', 'oper' => '=', 'value' => $this->sid]
        ];
        if(!empty($add_time_range)){
            $add_time_range_arr = explode('~',$add_time_range);

            $where[] = ['name' => 'dv_create_time', 'oper' => '>=', 'value' => strtotime($add_time_range_arr[0])];
            $where[] = ['name' => 'dv_create_time', 'oper' => '<', 'value' => strtotime($add_time_range_arr[1]) + 86400];
        }
        if(!empty($keyword_type)){
            $where[] = ['name' => $keyword_type, 'oper' => 'like', 'value' => "%{$keyword}%"];
        }

        $sort = ['dv_create_time' => 'DESC'];
        //获取视频列表
        $Video_model = new App_Model_Douyin_MysqlVideoStorage();
        $video_list = $Video_model->getList($where,$this->index,$this->count,$sort);
        $material_model = new App_Model_Douyin_MysqlVideoMaterialStorage($this->sid);
        $temp_video_model   = new App_Model_Douyin_MysqlVideoTempVideoStorage($this->sid);
        $pailie_video_model = new App_Model_Douyin_MysqlVideoMaterialPailieStorage();
        foreach ($video_list as &$item) {
            $item['video_num']  = $material_model->getMaterialCountByVideo($item['dv_id'], 1);
            $item['audio_num']  = $material_model->getMaterialCountByVideo($item['dv_id'], 2);
            $item['image_num']  = $material_model->getMaterialCountByVideo($item['dv_id'], 3);
            $item['title_num']  = $material_model->getMaterialCountByVideo($item['dv_id'], 4);
            $item['write_num']  = $material_model->getMaterialCountByVideo($item['dv_id'], 5);
            $item['cache_num']  = $temp_video_model->getTempVideoCountByItem($item['dv_id']);
            $item['pailie']     = $pailie_video_model->getRowByDvid($item['dv_id']);

            $progerss   = 40;
            if ($item['video_num'] > 0 || $item['image_num'] > 0) {
                $progerss += 10;
            }
            if ($item['audio_num'] > 0 || $item['write_num'] > 0) {
                $progerss += 10;
            }
            if ($item['pailie']['dvmp_is_zuhe']) {
                $progerss += 20;
            }
            if ($item['cache_num'] > 0) {
                $progerss += 20;
            }

            $item['progress']   = $progerss;
        }

        //计算分页
        $active_list_all = $Video_model->getCount($where);
        $page_libs = new Libs_Pagination_Paginator($active_list_all,$this->count,'jquery',true);
        $pageHtml = $page_libs->render();

        $this->output['add_time_range'] = $add_time_range;
        $this->output['keyword_type']   = $keyword_type;
        $this->output['keyword']        = $keyword;
        $this->output['video_list']     = $video_list;
        $this->output['pageHtml']       = $pageHtml;
        $video_mixed_mode   = plum_parse_config('project_mixed_mode', 'dydqt/project');
        $this->output['video_mixed_mode']   = $video_mixed_mode;
        $this->output['progress_line']  = [


 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值