ชุดแปลงไฟล์ * .avi โดยใช้ ffmpeg


13

ฉันพยายามแปลงไฟล์. avi 20+ ไฟล์ในชุดเป็น ffmpeg

ฉันมีดังต่อไปนี้

@echo off.

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

ในไฟล์. bat ของฉัน แต่ใช้ไม่ได้ ฉันจะทำให้มันทำงานภายใต้ระบบปฏิบัติการ Windows ได้อย่างไร โอ้และใช่ไฟล์ทั้งหมดอยู่ในโฟลเดอร์เดียวกัน

ข้อความแสดงข้อผิดพลาดที่ฉันได้รับ:

ไฟล์ไม่คาดคิดในขณะนี้


และสิ่งที่ไม่ทำงานเกี่ยวกับมัน?
slhck

หากคุณสามารถชี้ให้ฉันเห็นวิธีการรับข้อความแสดงข้อผิดพลาดได้เนื่องจาก cmd หายไปอย่างรวดเร็วฉันจะสามารถบอกคุณได้ว่าฉันกำลังมีปัญหาอะไร
Darius

คุณควรจะสามารถเปิดหน้าต่างคำสั่งก่อนหน้า ( เริ่ม»เรียกใช้ ... »cmd ) จากนั้นเรียกใช้ไฟล์แบตช์โดยใช้พา ธ เต็มจากที่นั่น คุณต้องการทำอะไรกับวิดีโอ วิดีโอประเภทใด คุณเพียงแค่ต้องย้ายมันไปยังคอนเทนเนอร์ MPG หรือไม่? หรือคุณต้องการปรับขนาดพวกเขา? หรือคุณต้องการmsmpeg4v2ตัวแปลงสัญญาณเป็นพิเศษหรือไม่
slhck

ไฟล์จะถูกนำออกจากเครื่องบันทึกภาพและมีความยาวมากกว่า 1GB 5 นาที ใช่ซอฟต์แวร์ DVR นั้นน่าสงสารเมื่อบีบอัด ตัวแปลงสัญญาณใช้งานได้เนื่องจากใช้ไฟล์ 1GB ไปยังไฟล์ขนาด 7MB ซึ่งสามารถจัดการได้ง่ายกว่า และเมื่อพยายามที่จะเรียกใช้ชุดที่ฉันได้รับข้อความ "ไฟล์ไม่คาดคิดในเวลานี้"
Darius

ฉันเห็น. หากคุณไม่สนใจเกี่ยวกับตัวแปลงสัญญาณวิดีโอและคอนเทนเนอร์ฉันขอแนะนำให้ใช้ x264 เป็นตัวเข้ารหัสแทนซึ่งจะให้คุณภาพที่ดีกว่า MPEG-4 มาก คำสั่งจะเป็นสิ่งffmpeg -i input.avi -c:v libx264 -crf 23 -s 640x480 output.mp4ที่ค่า CRF กำหนดคุณภาพ (น้อยกว่าดีกว่ายิ่งแย่ยิ่งกว่ามีสติตั้งแต่ 19 ถึง 24) ดูเพิ่มเติม: แปลงวิดีโอเก่าให้มีขนาดเล็กลงและควรดูพารามิเตอร์ใดเพื่อลดขนาดของไฟล์. MOV
slhck

คำตอบ:


26

ไฟล์แบตช์ของคุณไม่ได้อยู่ในรูปแบบที่ถูกต้องสำหรับสคริปต์ค้างคาวของ Windows สคริปต์ของคุณดูเหมือนว่ามันมีไว้สำหรับ Linux คุณจะต้องเปลี่ยนสคริปต์เพื่อใช้การวนลูปที่ Windows Shell สนับสนุน

ด้านล่างเป็นตัวอย่างของวิธีการทำงานให้สำเร็จโดยใช้ windows for loop เพียงแค่ใส่บรรทัดด้านล่างในแบทช์ไฟล์ของคุณและย้ายสคริปต์ไปยังไดเรกทอรีเดียวกันกับไฟล์ avi จากนั้นเรียกใช้

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

ด้วยสิ่งนี้ฉันได้รับ[NULL @ 000000000037e360] Unable to find a suitable output format for 'outputfile.avi.mpg;' outputfile.avi.mpg:: Invalid argument
Darius

1
จำเป็นต้องลบเซมิโคลอนนั้นออกจากจุดสิ้นสุดของบรรทัด
Brett
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.