php-ffmpeg运用 合并视频,转码视频

news/2024/7/10 21:52:46 标签: ffmpeg

下载

官网

windows 版本

在这里插入图片描述

添加环境变量

在这里插入图片描述

合并视频


    public function test_that_true_is_true(): void
    {

        ini_set('memory_limit',-1); //没有内存限制
        set_time_limit(0);//不限制执行时间
        //ffmpeg配置
        $path = [
            'ffmpeg.binaries'  => 'D:\soft\ffmpeg\bin/ffmpeg.exe',
            'ffprobe.binaries' => 'D:\soft\ffmpeg\bin/ffprobe.exe',
            'timeout' => 3600,//基础进程的超时
            'ffmpeg.threads' => 12//FFMpeg应使用的线程数
        ];
        $video1Path = 'C:\Users\DELL\Desktop\我的工作目录\猪獾\视频/1out.mp4';
        $video2Path = 'C:\Users\DELL\Desktop\我的工作目录\猪獾\视频/2out.mp4';
        $outputPath = 'C:\Users\DELL\Desktop\我的工作目录\猪獾\视频/result.mp4';

// 创建FFMpeg对象
        $ffmpeg = FFMpeg::create($path);

// 打开第一个视频文件
        $video1 = $ffmpeg->open($video1Path);

// 打开第二个视频文件
//        $video2 = $ffmpeg->open($video2Path);

// 合并视频
        $video1->concat([$video2Path,$video2Path])
            ->saveFromSameCodecs($outputPath, TRUE);

//        $video1->save(new X264(),$outputPath);

        $this->assertTrue(true);
    }

转码

    /**
     * 转码
     * @return void
     */
    public function testFormat(){
        $path = [
            'ffmpeg.binaries'  => 'D:\soft\ffmpeg\bin/ffmpeg.exe',
            'ffprobe.binaries' => 'D:\soft\ffmpeg\bin/ffprobe.exe',
            'timeout' => 3600,//基础进程的超时
            'ffmpeg.threads' => 12//FFMpeg应使用的线程数
        ];
        $video1Path = 'C:\Users\DELL\Desktop\我的工作目录\猪獾\视频/1.mp4';
        $video2Path = 'C:\Users\DELL\Desktop\我的工作目录\猪獾\视频/2.mp4';
        $outputPath = 'C:\Users\DELL\Desktop\我的工作目录\猪獾\视频/result.mp4';

// 创建FFMpeg对象
        $ffmpeg = FFMpeg::create($path);
// 输入视频文件路径
        $inputVideo = $ffmpeg->open($video2Path);

// 转码并设置输出路径和格式
        $outputVideo = 'C:\Users\DELL\Desktop\我的工作目录\猪獾\视频/2out.mp4';

        $inputVideo->save(new X264(), $outputVideo);

    }

命令的基本用法:

cmd 封装成php

php-ffmpeg 使用


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

相关文章

基于多反应堆的高并发服务器【C/C++/Reactor】(中)创建并初始化TcpServer实例 以及 启动

对于一个TcpServer来说,它的灵魂是什么?就是需要提供一个事件循环EventLop(EventLoop),不停地去检测有没有客户端的连接到达,有没有客户端给服务器发送数据,描述的这些动作,反应堆模型能够胜任。当服务器和…

Vue_00001_CLI

初始化脚手架 初始化脚手架步骤: 第一步(仅第一次执行):全局安装vue/cli。 命令:npm install -g vue/cli 第二步:切换到要创建项目的目录,然后使用命令创建项目。 命令:vue creat…

华为云Stack 8.X流量模型分析(六)

八、基础云专线流量模型分析 ​ 华为官方对云专线定义是:用户数据中心通过运营商的物理专线(MPLS/VPN,以太专线)访问云内资源,云内资源呈现真实IP,通过设置的专线路由实现三层互通。 ​ 通过云专线直接访…

Docker一键极速安装Nacos,并配置数据库!

1 部署方式 1.1 DockerHub javaedgeJavaEdgedeMac-mini ~ % docker run --name nacos \ -e MODEstandalone \ -e JVM_XMS128m \ -e JVM_XMX128m \ -e JVM_XMN64m \ -e JVM_MS64m \ -e JVM_MMS64m \ -p 8848:8848 \ -d nacos/nacos-server:v2.2.3 a624c64a1a25ad2d15908a67316d…

在 CentOS 7.8 上安装 Node.js

1.安装 NVM(Node Version Manager): curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash这将从 NVM 的 GitHub 仓库下载安装脚本并执行。请注意,您需要重新启动终端或者执行 source ~/.bashrc 以…

找城市(100%用例)C卷 (JavaPythonC++Node.jsswift)

一张地图上有n个城市,城市和城市之间有且只有一条道路相连:要么直接相连,要么通过其它城市中转相连(可中转一次或多次)。城市与城市之间的道路 都不会成环 。 当切断通往某个城市 i 的所有道路后,地图上将分为多个连通的城市群,设该城市 i 的聚集度为 DP i (Degree of…

C# .Net学习笔记—— 异步和多线程(await/async)

一、介绍 1、控制台测试await/async 2、C# 5.0 .Net framework4.5 CLR4.0 以后才有,本身是一种语法糖 二、基本测试 1、不加await测试。 private async static Task TestAsync() {Log.Info($"当前主线程id{Thread.CurrentThread.ManagedThreadId}"…

Ubuntu16.04 conda和ros环境共存(切换Python版本)

1.安装conda linux conda环境安装 conda软件下载conda 输入命令安装,一路回车/yes bash Anaconda3-2020.11-Linux-x86_64.sh# 创建虚拟环境 conda create -n name python3.8# 激活环境 conda activate name# 退出环境 conda deactivate# 查看虚拟环境 conda info…