批處理系列(10) - 批量剪輯音頻


結合本系列文章第一篇,看本文。

需要ffmpeg,配置ffmpeg到環境變量。

應用場景:下載一個專輯的有聲文件,音軌上固定時間有廣告之類的插入,去除掉它。

這里展示的是去掉開頭部分。

@echo off
@REM @Author: xianghongai@gmail.com
title 音頻剪輯操作  by:小可(xianghongai@gmail.com)
SETLOCAL ENABLEDELAYEDEXPANSION

:GTBegin
cls
@echo 音頻剪輯操作(提前設置好起始時間,備份好原始音頻數據)
@echo --------------------------------------------
set /p HandleDir=需要處理的目錄:

:GTCONTINUE
cls
@echo 音頻剪輯操作
@echo --------------------------------------------
@echo 處理的目錄:%HandleDir%
@echo.
@echo -----------------1.相同時間段剪輯-----------------
@echo   11 - 剪輯當前目錄
@echo   12 - 剪輯層級子目錄
@echo -------------------其它-------------------
@echo   8 - 重新選擇目錄
@echo   9 - 退出
@echo.
set  GTOperator=9
set /p GTOperator="選擇操作數: "
@echo.

if %GTOperator% equ 11 goto GTDIRPREFIX
if %GTOperator% equ 12 goto GTSUBDIRPREFIX

if %GTOperator% equ 8 goto GTBegin
if %GTOperator% equ 9 goto GTExit

echo 請選擇正確的操作數
pause >nul
goto GTCONTINUE

rem @echo 不能做文件名稱的字符
rem @echo \ / : * ? " < > |

rem 11.當前目錄:目錄名-文件名
:GTDIRPREFIX
cd /d "!HandleDir!"
for /f "delims=" %%i in ('dir /a-d /b *.MP3 2^>nul') do (
    if not "%~nx0"=="%%i" (
        ffmpeg -ss 00:00:47.666 -i "%%nxi" -acodec copy "O%%~nxi"
    )
)
echo 搞定
pause >nul
goto GTCONTINUE

rem 12.子目錄:子目錄名-文件名
:GTSUBDIRPREFIX
cd /d "!HandleDir!"
for /f "usebackq" %%i in (`dir /ad /b /s^|sort /r`) do (
    for /f "usebackq delims=" %%j in (`dir /a-d /b "%%i\*.MP3" 2^>nul`) do (
        ffmpeg -ss 00:00:47.666 -i "%%i\%%j" -acodec copy "%%i\%%~nxi-O%%~nxj"
        )   )
echo 搞定
pause >nul
goto GTCONTINUE


:GTExit
exit


轉載保留原文地址和作者名,只為錯誤勘正和信息補充。
版權聲明:自由轉載-非商用-非衍生-保持署名(創意共享3.0許可證)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM