首页 > 系统相关 >Windows下使用FFmpeg,完成当前文件夹下多个MP4视频的拼接

Windows下使用FFmpeg,完成当前文件夹下多个MP4视频的拼接

时间:2023-03-03 15:26:08浏览次数:58  
标签:mp4 FFmpeg Windows ts %% MP4 拼接 file ffmpeg

目的

单纯进行视频时长拼接,不改变两段视频各自的分辨率、码率等一切信息。

一、安装 FFmpeg

方法1:Windows打开powershell,使用winget命令安装FFmpeg

winget install ffmpeg

方法2:从GitHub Release中下载FFmpeg

国内点击ffmpeg-6.0-full_build.zip使用GitHub加速下载。
image

二、在Windows环境变量Path中添加FFmpeg bin目录

2.1 使用winget命令安装的

参考我的目录:
C:\Users\[用户名]\AppData\Local\Microsoft\WinGet\Packages\Gyan.FFmpeg_Microsoft.Winget.Source_8wekyb3d8bbwe\ffmpeg-6.0-full_build\bin
image

2.1 从GitHub下载的

将压缩包解压到一个你喜欢的目录下,再将对应的bin目录放入环境变量中即可

三、使用FFmpeg拼接

使用bat脚本完成此任务:脚本将使用ffmpeg将当前文件夹下所有mp4视频转换为ts格式,再拼接成一个mp4文件。

进入要拼接的视频文件夹,新建一个txt文件,粘贴以下内容:

@echo off
setlocal enabledelayedexpansion

set ffmpeg_path=ffmpeg.exe
set output_file=

echo Files to be converted:

for /f "delims=" %%a in ('dir /b /a-d "*.mp4"') do (
    set file_path="%%~fa"
    set file_name="%%~na"
    set file_ext="%%~xa"

    echo !file_name!!file_ext!
    !ffmpeg_path! -i !file_path! -c copy -bsf:v h264_mp4toannexb -f mpegts !file_name!.ts
)

echo.

set /p output_file="Enter output file name: "
set /a count=0

(for /f "delims=" %%a in ('dir /b /a-d *.ts ^| sort') do (
    set /a count+=1
    echo file '%%~fa'
)) > list.txt

!ffmpeg_path! -f concat -safe 0 -i list.txt -c copy "%output_file%.mp4"

echo.
echo Successfully converted and concatenated %count% files.

echo Deleting temporary files...
for %%f in (*.ts) do (
    del "%%f"
)
del list.txt

pause

保存后,把文件名后缀从.txt修改为.bat
双击运行此脚本即可自动拼接当前目录下的所有mp4视频文件。

脚本中的变量ffmpeg_path用于设置ffmpeg.exe的路径,output_file用于保存用户输入的输出文件名。
首先,脚本会使用dir命令列出所有的mp4文件,并逐个使用ffmpeg将它们转换为ts格式。转换后的ts文件保存在和原始mp4文件相同的目录下,并以原始文件名为前缀,加上“.ts”为后缀。
然后,脚本会提示用户输入最后拼接得到的MP4文件名,并将所有的ts文件名按照Windows资源管理器的中文文件名名称排列顺序保存在list.txt文件中。最后,使用ffmpeg将所有的ts文件拼接成一个mp4文件,并将其保存为用户输入的文件名。
拼接完成后,会删除中间步骤生成的所有.ts文件和list.txt文件。删除临时文件的操作使用for循环遍历当前目录下的所有.ts文件,并使用del命令将它们逐个删除。最后,使用del命令删除list.txt文件。
删除操作完成后,脚本输出提示信息,并等待用户按下任意键终止脚本的执行。

标签:mp4,FFmpeg,Windows,ts,%%,MP4,拼接,file,ffmpeg
From: https://www.cnblogs.com/leebri/p/17175707.html

相关文章

  • Windows系统安装Redis服务
    网上有很多的安装教程,但Redis版本都比较老,最近从github上搜索到最新版本,验证可用,记录一下1、应用下载地址:https://github.com/zkteco-home/redis-windows2、选择对应得ta......
  • C:\Windows\System32\drivers\etc\hosts中的文件修改后无法保存
    这个文件定义了IP地址和主机名的映射关系。我们对其进行修改保存时显示没有权限无法保存,我们可以通过以下步骤解决。1、选中hosts文件,右键点击属性。2、在属性面板点击安......
  • Windows 11 右键菜单 默认展开方法
    Win+R打开运行对话框展开:reg.exeadd"HKCU\Software\Classes\CLSID\{86ca1aa0-34aa-4e8b-a509-50c905bae2a2}\InprocServer32"/f/ve折叠:reg.exedelete"HKCU\Softw......
  • 是windows11家庭版没有Hyper-V的解决方法
    windows11家庭版,程序添加这就没有hyper-v,但是可以手动添加,把下面这个脚本修改后缀.cmd即可(如:hyper-v.cmd),不会的可以直接下载我这个文件。 pushd"%~dp0"dir/b%Syste......
  • windows cmd使用linux命令
    一、首先,下载Git:https://git-scm.com/downloads(官网地址) 二、一路默认,安装到C盘 三、找到Git文件下的mingw64和usr文件下的bin四、复制这两个路径,添加全局的系统......
  • ffmpeg设置终端不显示日志
    在使用ffmpeg处理视频的时候,终端页面会输出大量日志,其实打印这些日志也是很耗时的,所以有时候没有显示,那么怎么关闭日志输出呢:要在使用FFmpeg时禁用日志输出,可以......
  • 好用的nodejs版本管理工具 -- nvm (windows)
    前言:因为目前由于公司人员缺乏,身兼两个项目,都是用的vue前端框架,但是一个是vue2+js,另一个是vue3+ts;所以不同项目开发时候需要比较频繁地去切换nodejs的版本,所以就想着要是......
  • [转]Windows10下CLion配置说明
    Windows10下CLion配置说明CLion是C/C++的IDE,可以配置多种编译环境,本文以配置MinGW编译环境为例。安装CLion的安装可直接到官网下载ZIP,文件解压后直接运行即可。我在......
  • windows 使用 supervisor
    安装pip包playwright_spider.py生成主conf文件2.1 在对应的python环境的Scripts下,使用echo_supervisord_conf.exe>supervisord.conf,可以指定路径,不指定则生成在该......
  • 解决当前标识(IIS APPPOOL\XXXX)没有对“C:\Windows\Microsoft.NET\Framework64\
    1、问题描述在WindowsServer2019数据中心版中搭建IIS项目,访问的时候出现如下所示的错误:当前标识(IISAPPPOOL\XXXX)没有对“C:\Windows\Microsoft.NET\Framework64\v4.0......