Toplu dönüştürme * .avi dosyaları ffmpeg kullanarak


13

Ffmpeg kullanarak bir toplu işte 20+ .avi dosyalarını dönüştürmeye çalışıyorum.

Aşağıdakilere sahibim

@echo off.

for file in *.avi
do
   ffmpeg -i "$file" -s 640x480 -vcodec msmpeg4v2 "'basename "$file" .avi'.mpg';
done

.bat dosyamda ama çalışmıyor. Windows işletim sistemi altında nasıl çalıştırabilirim? Ve evet, tüm dosyalar aynı klasörde.

Aldığım hata mesajı:

Dosya şu anda beklenmedikti


Ve bu konuda tam olarak işe yaramayan nedir?
slhck

Eğer cmd çok hızlı bir şekilde kaybolduğu için hata mesajını nasıl alacağımı gösterebilirseniz, size neyle sorun yaşadığımı söyleyebilirim.
Darius

Daha önce ( Başlat »Çalıştır…»cmd ) bir komut penceresi açabilmeniz ve ardından toplu dosyayı tam yolunu kullanarak çalıştırabilmeniz gerekir. Aslında videolarla ne yapmak istiyorsunuz? Bunlar ne tür videolar? Sadece bir MPG konteynerine taşımanız mı gerekiyor? Yoksa yeniden boyutlandırmanız mı gerekiyor? Yoksa özellikle msmpeg4v2codec bileşenine mi ihtiyacınız var ?
slhck

Dosyalar bir DVR'den çıkarılır ve 1GB 5 dakikalık kliplerin üzerindedir. Evet, DVR yazılımı sıkıştırmada acınasıdır. Codec bileşeni, 1GB dosyaları yaklaşık 7MB dosyalara daha yönetilebilir olduğundan aldığından çalışır. Ve bu toplu işi çalıştırmaya çalışırken "Dosya şu anda beklenmedikti" iletisini alıyorum.
Darius

Anlıyorum. Ortaya çıkan video codec bileşenini ve kapsayıcısını umursamıyorsanız, bunun yerine x264'ü enkoder olarak kullanmanızı öneririz, bu da MPEG-4'ten çok daha iyi kalitede sonuç verir . Komut ffmpeg -i input.avi -c:v libx264 -crf 23 -s 640x480 output.mp4, CRF değerinin kaliteyi ayarladığı gibi bir şey olacaktır (daha az iyidir, daha kötüdür, 19'dan 24'e kadar aklı başında). Ayrıca bkz: Eski videoları daha küçük boyutlara dönüştürün ve .MOV dosyasının boyutunu azaltmak için hangi parametrelere bakmalıyım?
slhck

Yanıtlar:


26

Toplu iş dosyanız bir Windows toplu iş komut dosyası için doğru biçimde değil. Bunun yerine betiğiniz Linux için tasarlanmış gibi görünüyor. Windows Kabuğu tarafından desteklenen bir for döngüsü kullanmak için komut dosyasını değiştirmeniz gerekir .

Aşağıda, Windows için döngü kullanarak bu görevin nasıl gerçekleştirileceğine ilişkin bir örnek verilmiştir. Aşağıdaki satırı toplu iş dosyanıza koyun ve komut dosyasını avi dosyalarıyla aynı dizine taşıyın ve çalıştırın.

for %%A IN (*.avi) DO ffmpeg -i "%%A" "%%A.mpg"

Bunu alıyorum[NULL @ 000000000037e360] Unable to find a suitable output format for 'outputfile.avi.mpg;' outputfile.avi.mpg:: Invalid argument
Darius

1
Bu
Brett
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.