請問ffmpeg能用命令列批次處理多個檔案嗎

想請教一下板上先進

想用ffmpeg將資料夾內的所有ts檔轉成mp4

目前所用指令如下

ffmpeg -i input.ts -c:v copy -c:a aac -b:a 96k -movflags +faststart output.mp4

處理單檔的話沒問題

但若要處理的檔案數多的話就很麻煩

不知道有沒有辦法讓ffmpeg抓取該資料夾內的所有ts檔

執行一次後就批次轉檔呢

試著用以下指令結果失敗
ffmpeg -i "%%~ni.ts" -c:a aac -b:a 96k -movflags +faststart "%%~ni.mp4"

請問ffmpeg能用命令列批次處理多個檔案嗎

麻煩各位指教一下在下是那裡出錯了...

目前是想到用bat寫

ffmpeg -i 01.ts -c:v copy -c:a aac -b:a 96k -movflags +faststart 01.mp4
ffmpeg -i 02.ts -c:v copy -c:a aac -b:a 96k -movflags +faststart 02.mp4
.
.
.
.
ffmpeg -i 99.ts -c:v copy -c:a aac -b:a 96k -movflags +faststart 99.mp4

但還是先上來問問有沒有正規的辦法,麻煩各位了!
2017-07-31 10:29 發佈

天涯浪人 wrote:
想請教一下板上先進...(恕刪)

bat 方便.

for %%A IN (*.ts) DO ffmpeg -i "%%A" "%%A.mp4"


别被我選中..為何又選中..

ahwaiyuen98 wrote:
bat 方便.for...(恕刪)


感謝大大回覆,目前問到跟google到的辦法都還是要寫個bat,沒辦法直接在cmd裡輸入

天涯浪人 wrote:
感謝大大回覆,目前問到跟google到的辦法都還是要寫個bat,沒辦法直接在cmd裡輸入

可以.

你對 OS 不熟吧.
☆ 私人訊息直接刪除不再回覆 ☆ 願望 : bovuhPPjMnEfkyhggnsJdABaLFPuhXT4
@echo off
For /f %%a in ('dir /b *.bat') do echo ffmpeg -i %%a -c:v copy -c:a aac -b:a 96k -movflags +faststart %%~na.mp4
pause

存成bat

將 *.bat改成你要的檔案 EX *.ts

輸出正常後,再將 echo 拿掉變成


plusv wrote:
可以.你對 OS ...(恕刪)


就是不熟才要上來求救阿

所以大大有辦法不寫bat,直接在cmd裡批次處理多檔案?

可以指導一下嗎?目前看到的都是bat的寫法,還沒有看到能一行指令就處理好的

Eigen wrote:
@echo offFor...(恕刪)


感謝大大指導,不過最後怎麼好像沒說完?
謝謝
ahwaiyuen98 wrote:
bat 方便.for...(恕刪)
把所有的 %% 都改成% 就可以在 cmd 用
CMD
先 dir 到你要的資料夾或者直接在路徑(CTRL-L)輸入cmd
然後執行
for %A IN (*.flv) DO ffmpeg -i "%A" "%A.mp4"

bat 和 cmd 都測試過,沒什麼問題。

ahwaiyuen98 wrote:
bat 方便.for...(恕刪)


感恩大大教學,最近剛好遇到同樣的問題,借助大大的意見順利搞定!
內文搜尋
X
評分
評分
複製連結
Mobile01提醒您
您目前瀏覽的是行動版網頁
是否切換到電腦版網頁呢?