[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文件操作] 多文件夹下视频如何如何用批处理批量合并?

77七 大佬休息了没?

向您请教:多文件夹下视频如何批量合并成N个视频?

A1 A2 AN多个文件夹里面有多个mp4视频,如何批量把它们合并成以文件夹命名的多个视频?

感恩大佬!提前感谢!

这个代码如何改成【多文件夹目录内视频批量合并】
  1. @if(0)==(0) echo off&setlocal EnableDelayedExpansion&cd %~dp0
  2. title 获取"New"文件夹的MP4文件名合并视频
  3. type nul>"%~dp0New\New.txt"
  4. rem 列出文件名
  5. cd "%~dp0New"
  6.     @for /f "delims=" %%j in ('dir /b/a-d/on "*.mp4"^|cscript -nologo -e:jscript "%~f0"') do (
  7.             echo;file %%j>>New.txt&echo; 合并文件 %%j
  8.     )
  9.     echo;& echo 即将合并视频为New.mp4
  10. )
  11. pause
  12. rem 合并文件
  13. ffmpeg -f concat -i New.txt -vcodec copy -acodec copy %~dp0New.mp4
  14.     cls&echo 新文件保存路径%~dp0New.mp4&echo;
  15. pause&exit /b
  16. @end
  17. var str=WScript.StdIn.ReadAll().split('\n')
  18. str.sort(function(a,b){return a.length - b.length;})
  19. WScript.Echo(str.join('\n'))
复制代码

TOP

回复 3# 77七

这样,对么?
  1. @echo off
  2. chcp 65001 >nul
  3. rem 批处理保存为utf-8编码格式,需要ffmpeg
  4. for /d %%d in (*) do (
  5. pushd "%%d"
  6. (for /f "delims=" %%i in ('dir /b /a-d *.mp4 ^|sort') do (
  7. echo file '%%~fi'
  8. ))>xxx.txt
  9. if exist xxx.txt if not exist "%~dp0%%~nxd.mp4" (
  10. ffmpeg.exe -f concat -safe 0 -i xxx.txt -c copy "%~dp0%%~nxd.mp4"
  11. )
  12. del xxx.txt 2>nul
  13. popd
  14. )
  15. pause
复制代码

TOP

回复 5# 77七


    嗯,可以的,感谢大佬!您早点休息!万分感谢!

TOP

回复 5# 77七


    只是有点小问题,有时候会不按照顺序合并。文件夹里面的视频都是按照数字编号大小排序的

TOP

回复 5# 77七


    例如文件夹里面开头是1.mp4,结尾是5.mp4,合并后5到最前面了,然后是1234...

TOP

回复 9# 77七


    第12行删除后,发现排序是乱了,1-10的,变成了1/10/2/3/4这样。

TOP

回复 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来指定列数了

TOP

回复 13# Batcher


    收到,感谢大佬!

TOP

回复 15# 77七

大佬太棒了!666

TOP

返回列表