首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何编辑和拼接视频

如何编辑和拼接视频
EN

Stack Overflow用户
提问于 2019-12-08 05:31:26
回答 1查看 625关注 0票数 0

有没有一种方法,我们可以添加我们的预定义自己的视频剪辑到现有的视频通过一些脚本,然后保存为一个视频?我们不想使用任何视频编辑软件的请告诉我,你有任何方法来视频编辑和连接视频吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-12-08 07:02:41

欢迎!ffmpeg是我最喜欢的通过代码处理音频和视频文件的方法,并且可以与大多数脚本语言一起使用(我是用python编写的)。已经有了一个在这里回答问题,但我将给出另一个例子。

由于您标记了javascript和node.js,这里是我用编程方式(通过代码)完成这一任务的代码片段,而无需使用视频编辑器。我在linux、mac和windows上使用了这种方法,因此文件路径依赖于您的系统。它适用于大多数主要的音频和视频格式,但就本例而言,我使用的是.mp4。我刚刚测试了我在Windows 10上发布的这个精确的设置,它没有任何错误。

首先,创建一个新的节点项目(如果您还没有这样做)

代码语言:javascript
运行
复制
npm init

接下来,从命令行使用npm节点安装ffmpeg (这将安装在任何平台上: linux、osx、windows) npm包

代码语言:javascript
运行
复制
npm install ffmpeg-downloader

有多种方法组合视频,但我喜欢下面的方法。为了组合文件,您需要在一个.txt文件中列出完整的文件路径,--每行一个视频文件--,ffmpeg将读取该文件以进行合并(我称之为 files.txt,但它可以被称为任何东西)。我不确定你可以有多少视频限制,但我已经将多达15个视频一次合并成一个没有问题的最后一个视频。

files.txt的内容如下所示;您可以事先创建它,也可以通过代码创建它,这取决于您的需要:

代码语言:javascript
运行
复制
file 'C:\path\to\file1.mp4'
file 'C:\path\to\file2.mp4'
file 'C:\path\to\file3.mp4'
file 'C:\path\to\file4.mp4'

现在,在一个javascript文件(我称为我的combine.js)中,您可以调整以下内容以适应您的文件路径结构。

代码语言:javascript
运行
复制
const { exec } = require('child_process');
const ffmpeg = require('ffmpeg-downloader');

function combineVideos() {
    console.log('process starting');

    // executable for ffmpeg
    const exe = ffmpeg.path;

    // the files.txt that contains the list of files to combine
    const filesList = 'C:\\path\\to\\files.txt';

    // where you want the final video to be created
    const outFile = 'C:\\path\\to\\finalCombinedVideo.mp4';

    // build the command that ffmpeg will run. It will look something like this:
    // ffmpeg -y -f concat -safe 0 -i "path/to/files.txt" -c copy "path/to/finalCombinedVideo.mp4"

    const cmd = '"' + exe + '" -y'
        + ' -f concat'
        + ' -safe 0'
        + ' -i "' + filesList + '"'
        + ' -c copy "' + outFile + '"';

    exec(cmd, (err, stdout, stderr) => {
        if (err) {
            console.error(`exec error: ${err}`);
            return;
        }

        console.log(`process complete: ${outFile}`);
    });
}

// call the combineVideos function
combineVideos();

现在,您可以使用节点来运行组合函数并创建视频。

代码语言:javascript
运行
复制
node combine.js
process starting
process complete:  C:\path\to\finalCombinedVideo.mp4

我希望这能对你有所帮助。祝你好运!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59232712

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档