标题: [文件操作] 多文件夹下视频如何如何用批处理批量合并? [打印本页]
作者: 877 时间: 2023-8-6 23:03 标题: 多文件夹下视频如何如何用批处理批量合并?
77七 大佬休息了没?
向您请教:多文件夹下视频如何批量合并成N个视频?
A1 A2 AN多个文件夹里面有多个mp4视频,如何批量把它们合并成以文件夹命名的多个视频?
感恩大佬!提前感谢!
作者: 877 时间: 2023-8-7 00:26
这个代码如何改成【多文件夹目录内视频批量合并】- @if(0)==(0) echo off&setlocal EnableDelayedExpansion&cd %~dp0
- title 获取"New"文件夹的MP4文件名合并视频
- type nul>"%~dp0New\New.txt"
- rem 列出文件名
- cd "%~dp0New"
- @for /f "delims=" %%j in ('dir /b/a-d/on "*.mp4"^|cscript -nologo -e:jscript "%~f0"') do (
- echo;file %%j>>New.txt&echo; 合并文件 %%j
- )
- echo;& echo 即将合并视频为New.mp4
- )
- pause
-
- rem 合并文件
- ffmpeg -f concat -i New.txt -vcodec copy -acodec copy %~dp0New.mp4
- cls&echo 新文件保存路径%~dp0New.mp4&echo;
- pause&exit /b
- @end
-
- var str=WScript.StdIn.ReadAll().split('\n')
- str.sort(function(a,b){return a.length - b.length;})
- WScript.Echo(str.join('\n'))
复制代码
作者: 77七 时间: 2023-8-7 00:30
- http://bbs.bathome.net/redirect.php?goto=findpost&;ptid=66899&pid=271596
复制代码
把这个帖子的mp3改为mp4,修改下ffmpeg的路径,试试行吗
作者: 877 时间: 2023-8-7 00:35
回复 3# 77七
这样,对么?- @echo off
- chcp 65001 >nul
- rem 批处理保存为utf-8编码格式,需要ffmpeg
- for /d %%d in (*) do (
- pushd "%%d"
- (for /f "delims=" %%i in ('dir /b /a-d *.mp4 ^|sort') do (
- echo file '%%~fi'
- ))>xxx.txt
- if exist xxx.txt if not exist "%~dp0%%~nxd.mp4" (
- ffmpeg.exe -f concat -safe 0 -i xxx.txt -c copy "%~dp0%%~nxd.mp4"
- )
- del xxx.txt 2>nul
- popd
- )
- pause
复制代码
作者: 77七 时间: 2023-8-7 00:38
回复 4# 877
应该没问题
作者: 877 时间: 2023-8-7 00:51
回复 5# 77七
嗯,可以的,感谢大佬!您早点休息!万分感谢!
作者: 877 时间: 2023-8-7 00:55
回复 5# 77七
只是有点小问题,有时候会不按照顺序合并。文件夹里面的视频都是按照数字编号大小排序的
作者: 877 时间: 2023-8-7 00:56
回复 5# 77七
例如文件夹里面开头是1.mp4,结尾是5.mp4,合并后5到最前面了,然后是1234...
作者: 77七 时间: 2023-8-7 01:18
回复 8# 877
如果只有 1.mp4 2.mp4 3.mp4 4.mp4 5.mp4
已经sort排序了,应该不会出现顺序问题。
你把代码第12行删除,看看txt中的顺序对吗?
作者: 877 时间: 2023-8-7 09:11
回复 9# 77七
第12行删除后,发现排序是乱了,1-10的,变成了1/10/2/3/4这样。
作者: 877 时间: 2023-8-7 09:32
回复 9# 77七
以下是论坛搜索到的。不知道怎样使用~
sort -n -k 2 -t W
1: sort的-n选项
你有没有遇到过10比2小的情况。我反正遇到过。出现这种情况是由于排序程序将这些数字按字符来排序了,排序程序会先比较1和2,显然1小,所以就将10放在2前面喽。这也是sort的一贯作风。
我们如果想改变这种现状,就要使用-n选项,来告诉sort,“要以数值来排序”!
2:sort提供了-t选项,后面可以设定间隔符,指定了间隔符之后,就可以用-k来指定列数了
作者: 77七 时间: 2023-8-7 10:55
回复 11# 877
- sort -n -k 1 -t . 1.txt >2.txt
复制代码
作者: Batcher 时间: 2023-8-7 11:03
回复 11# 877
这个是第三方命令行工具 sort.exe 的语法
http://bcn.bathome.net/s/tool/index.html?key=sort
跟Linux的sort命令用法基本相同
作者: 877 时间: 2023-8-7 11:05
回复 13# Batcher
收到,感谢大佬!
作者: 77七 时间: 2023-8-7 11:07
回复 11# 877
- @echo off
- chcp 65001 >nul
- rem 批处理保存为utf-8编码格式,需要ffmpeg
- for /d %%d in (*) do (
- pushd "%%d"
- (for /f "delims=" %%i in ('dir /b /a-d *.mp4 ^|sort -n -k 1 -t .') do (
- echo file '%%i'
- ))>xxx.txt
- if exist xxx.txt if not exist "%~dp0%%~nxd.mp4" (
- ffmpeg.exe -f concat -safe 0 -i xxx.txt -c copy "%~dp0%%~nxd.mp4"
- )
- del xxx.txt 2>nul
- popd
- )
- pause
复制代码
作者: 877 时间: 2023-8-7 11:22
回复 15# 77七
大佬太棒了!666
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |