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

[文本处理] 求助批处理获取wav时长切割mp4

如何实现获取a.wav的时长,然后把b.mp4切割成和其一样?

最好是弄成获取本文件夹下wav,然后切割本文件夹下mp4这种。

感谢大佬~


另一个思路是获取wav时长,然后把mp4变速成wav时长一致。
这个要是能弄好最好了...

在此感谢站长大大了!

我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

回复 2# Batcher


   非常感谢老大出的教程!万分感谢!

只是执行场景1和2都没生成出来变速的视频,执行场景1直接黑闪了一下,生成了一个0字节的output.mp4。还望指教

TOP

回复 2# Batcher


    老大, 弄成获取wav时长,然后切割mp4为相同时间。要怎样写呢?变速那个教程试了没成功...

TOP

回复 3# 877


请参考Q-04把test.bat文件保存为ANSI编码:
https://mp.weixin.qq.com/s/Koje4FufWxWBs7ioDy_LJA

请参考Q-01观察一下哪行代码在报错以及详细的报错信息:
https://mp.weixin.qq.com/s/Koje4FufWxWBs7ioDy_LJA

如果需要上传截图,可以找个图床,例如:
http://bbs.bathome.net/thread-60985-1-1.html
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

回复 5# Batcher



大佬您看下吧

TOP

回复 6# 877
第23行有个笔误,应该为set "SecondMp4=%CS%"
  1. @echo off
  2. REM 1、下载并安装 FFmpeg 这个命令行工具
  3. REM https://github.com/BtbN/FFmpeg-Builds/releases
  4. REM 2、根据自己电脑实际安装路径设置以下临时环境变量
  5. set "path=C:\Program Files\ffmpeg\ffmpeg-n6.0-latest-win64-gpl-6.0\bin\;%path%"
  6. cd /d "%~dp0"
  7. set "OutputName=output.mp4"
  8. for %%i in (*.wav) do (
  9.     set "InputWav=%%i"
  10. )
  11. for %%i in (*.mp4) do (
  12.     set "InputMp4=%%i"
  13. )
  14. for /f "tokens=2-5 delims=:., " %%a in ('ffmpeg.exe -i "%InputWav%" 2^>^&1 ^| find "Duration:"') do (
  15.     call :Time2SS %%a %%b %%c %%d
  16. )
  17. set "SecondWav=%CS%"
  18. for /f "tokens=2-5 delims=:., " %%a in ('ffmpeg.exe -i "%InputMp4%" 2^>^&1 ^| find "Duration:"') do (
  19.     call :Time2SS %%a %%b %%c %%d
  20. )
  21. set "SecondMp4=%CS%"
  22. set "VideoFactor=%SecondWav%/%SecondMp4%"
  23. set "AudioFactor=%SecondMp4%/%SecondWav%"
  24. ffmpeg.exe -i "%InputMp4%" -vf "setpts=%VideoFactor%*PTS" -af "atempo=%AudioFactor%" "%OutputName%"
  25. goto :eof
  26. :Time2SS
  27. set /a HH=1%1-100,MM=1%2-100,SS=1%3-100
  28. set "CS=(%HH%*3600+%MM%*60+%3.%4)"
  29. goto :eof
复制代码

TOP

回复 6# 877


    根据这个截图可以看出,场景1代码23行的SeconMp4需要修改成SecondMp4
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

回复 7# buyiyang


    感谢大佬,帮忙看下这段代码,如何裁剪完后,删除原文件吧~后面加del哪个呢?
  1. CD /D "%~dp0"
  2. md "1"
  3. for %%i in (*.flv *.mp4 *.mkv *.mov) do ffmpeg.exe -i "%%i" -vf crop=1080:1520:0:200 ".\1\%%~nxi"
  4. del %%i 么?
  5. pause
复制代码

TOP

回复 8# Batcher


    大佬,我想在一个bat里面继续执行下面的命令,需要删除原wav和mp4,只保留output.mp4,那个goto :eof应该怎样改呢?

TOP

回复 7# buyiyang


    大佬。还有个问题,是根据wav的时长合并成mp4了,但是没有声音。。。

TOP





执行下面代码后想继续执行后面的命令,goto应该怎样改呢?
  1. ffmpeg.exe -i "%InputMp4%" -vf "setpts=%VideoFactor%*PTS" -af "atempo=%AudioFactor%" "%OutputName%"
  2. goto :eof
复制代码



写在这个 goto :eof 前
bat小白,请多指教!谢谢!

TOP

回复 12# 77七


    大佬,怎样在这段代码后面加上del删除源文件,只保留合并后的mp4。求指教~
  1. @echo off
  2. REM 1、下载并安装 FFmpeg 这个命令行工具
  3. REM https://github.com/BtbN/FFmpeg-Builds/releases
  4. REM 2、根据自己电脑实际安装路径设置以下临时环境变量
  5. set "path=C:\Program Files\ffmpeg\ffmpeg-n6.0-latest-win64-gpl-6.0\bin\;%path%"
  6. cd /d "%~dp0"
  7. set "OutputName=output.mp4"
  8. for %%i in (*.wav) do (
  9.     set "InputWav=%%i"
  10. )
  11. for %%i in (*.mp4) do (
  12.     set "InputMp4=%%i"
  13. )
  14. for /f "tokens=2-5 delims=:., " %%a in ('ffmpeg.exe -i "%InputWav%" 2^>^&1 ^| find "Duration:"') do (
  15.     call :Time2SS %%a %%b %%c %%d
  16. )
  17. set "SecondWav=%CS%"
  18. for /f "tokens=2-5 delims=:., " %%a in ('ffmpeg.exe -i "%InputMp4%" 2^>^&1 ^| find "Duration:"') do (
  19.     call :Time2SS %%a %%b %%c %%d
  20. )
  21. set "SecondMp4=%CS%"
  22. set "VideoFactor=%SecondWav%/%SecondMp4%"
  23. set "AudioFactor=%SecondMp4%/%SecondWav%"
  24. ffmpeg.exe -i "%InputMp4%" -vf "setpts=%VideoFactor%*PTS" -af "atempo=%AudioFactor%" "%OutputName%"
  25. goto :eof
  26. :Time2SS
  27. set /a HH=1%1-100,MM=1%2-100,SS=1%3-100
  28. set "CS=(%HH%*3600+%MM%*60+%3.%4)"
  29. goto :eof
复制代码

TOP

回复 13# 877


  
  1. ffmpeg.exe -i "%InputMp4%" -vf "setpts=%VideoFactor%*PTS" -af "atempo=%AudioFactor%" "%OutputName%"
  2. del "%InputMp4%";"%InputWav%"
  3. goto :eof
复制代码
bat小白,请多指教!谢谢!

TOP

回复 14# 77七


    感谢大佬!还是这段代码,看站长大大写的是实现音画同步,我合成后的output.mp4是根据wav变速合成了,但是没有声音。请大佬给看下是哪里问题呢?

TOP

返回列表