คำสั่ง FFmpeg ที่มีประโยชน์สำหรับการทำงานกับไฟล์เสียงและวิดีโอ

เผยแพร่แล้ว: 2022-02-26

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

แยกเสียงจากไฟล์วิดีโอด้วยคำสั่ง FFmpeg ง่ายๆ นี้ แยกเสียงจากไฟล์วิดีโอด้วยคำสั่ง FFmpeg ง่ายๆ นี้

คำสั่ง FFmpeg ที่มีประโยชน์

FFmpeg รองรับรูปแบบเสียงและวิดีโอยอดนิยมทั้งหมด หรือคุณสามารถเรียกใช้คำสั่ง ./ffmpeg -formats เพื่อรับรายการทุกรูปแบบที่การติดตั้ง FFmpeg ของคุณรองรับ หากคุณเพิ่งเริ่มต้น นี่คือคำสั่งบางส่วนที่จะให้แนวคิดที่ดีเกี่ยวกับความสามารถของเครื่องมือนี้

1. ตัดไฟล์วิดีโอเป็นคลิปที่เล็กลง

คุณสามารถใช้พารามิเตอร์ชดเชยเวลา (-ss) เพื่อระบุการประทับเวลาเริ่มต้นในรูปแบบ HH:MM:SS.ms ขณะที่พารามิเตอร์ -t ใช้สำหรับระบุระยะเวลาจริงของคลิปเป็นวินาที

ffmpeg -i input.mp4 -ss 00:00:50.0 -codec copy -t 20 output.mp4

2. แบ่งวิดีโอออกเป็นหลายส่วน

หากคุณต้องการแบ่งวิดีโอขนาดใหญ่ออกเป็นคลิปย่อยๆ หลายๆ คลิปโดยไม่ต้องเข้ารหัสซ้ำ ffmpeg ช่วยคุณได้ คำสั่งนี้จะแบ่งวิดีโอต้นทางออกเป็น 2 ส่วน โดยส่วนแรกจะสิ้นสุดที่ 50 วินาทีจากจุดเริ่มต้นและอีกส่วนเริ่มต้นที่ 50 และสิ้นสุดที่ส่วนท้ายของวิดีโออินพุต

ffmpeg -i video.mp4 -t 00:00:50 -c copy small-1.mp4 -ss 00:00:50 -codec copy small-2.mp4

3. แปลงวิดีโอจากรูปแบบหนึ่งเป็นอีกรูปแบบหนึ่ง

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

ffmpeg -i youtube.flv -c:v libx264 filename.mp4

ffmpeg -i video.wmv -c:v libx264 -preset ultrafast video.mp4

4. เข้าร่วม (ต่อ) ไฟล์วิดีโอ

หากคุณมีไฟล์เสียงหรือวิดีโอหลายไฟล์ที่เข้ารหัสด้วยตัวแปลงสัญญาณเดียวกัน คุณสามารถรวมไฟล์เหล่านั้นเป็นไฟล์เดียวได้โดยใช้ FFmpeg สร้างไฟล์อินพุตพร้อมรายการไฟล์ต้นฉบับทั้งหมดที่คุณต้องการเชื่อมต่อ จากนั้นเรียกใช้คำสั่งนี้

ffmpeg -f concat -i file-list.txt -c copy output.mp4

5. ปิดเสียงวิดีโอ (ลบส่วนประกอบเสียง)

ใช้พารามิเตอร์ -an เพื่อปิดใช้งานส่วนเสียงของสตรีมวิดีโอ

ffmpeg -i video.mp4 -an mute-video.mp4

6. แยกเสียงจากวิดีโอ

สวิตช์ -vn จะแยกส่วนเสียงออกจากวิดีโอ และเรากำลังใช้สวิตช์ -ab เพื่อบันทึกเสียงเป็นไฟล์เสียง MP3 ขนาด 256kbps

ffmpeg -i video.mp4 -vn -ab 256 audio.mp3

7. แปลงวิดีโอเป็นภาพเคลื่อนไหว GIF

FFmpeg เป็นเครื่องมือที่ยอดเยี่ยมสำหรับการแปลงวิดีโอเป็นไฟล์ GIF แบบเคลื่อนไหว และคุณภาพก็ไม่เลวเช่นกัน ใช้ตัวกรองมาตราส่วนเพื่อระบุความกว้างของ GIF พารามิเตอร์ -t ระบุระยะเวลาในขณะที่ -r ระบุอัตราเฟรม (fps)

ffmpeg -i video.mp4 -vf scale=500:-1 -t 10 -r 10 image.gif

8. แยกเฟรมรูปภาพออกจากวิดีโอ

คำสั่งนี้จะแยกเฟรมวิดีโอที่เครื่องหมาย 15 และบันทึกเป็นภาพ JPEG กว้าง 800px คุณยังสามารถใช้สวิตช์ -s (เช่น -s 400x300) เพื่อระบุขนาดที่แน่นอนของไฟล์ภาพ แม้ว่ามันอาจจะสร้างภาพที่ยืดออกได้ หากขนาดภาพไม่เป็นไปตามอัตราส่วนกว้างยาวของไฟล์วิดีโอต้นฉบับ

ffmpeg -ss 00:00:15 -i video.mp4 -vf scale=800:-1 -vframes 1 image.jpg

9. แปลงวิดีโอเป็นรูปภาพ

คุณสามารถใช้ FFmpeg เพื่อแยกเฟรมรูปภาพจากวิดีโอโดยอัตโนมัติทุกๆ 'n' วินาที และรูปภาพจะถูกบันทึกเป็นลำดับ คำสั่งนี้จะบันทึกเฟรมภาพจากวิดีโอทุกๆ 4 วินาที

ffmpeg -i movie.mp4 -r 0.25 frames_%04d.png

10. รวมไฟล์เสียงและวิดีโอ

คุณยังสามารถระบุ -shortest -สั้นที่สุด เพื่อสิ้นสุดการเข้ารหัสเมื่อคลิปที่สั้นที่สุดสิ้นสุดลง

ffmpeg -i video.mp4 -i audio.mp3 -c:v copy -c:a aac -strict experimental output.mp4

ffmpeg -i video.mp4 -i audio.mp3 -c:v copy -c:a aac -strict experimental -shortest output.mp4

11. ปรับขนาดวิดีโอ

ใช้สวิตช์ขนาด (-s) กับ ffmpeg เพื่อปรับขนาดวิดีโอโดยคงอัตราส่วนไว้

ffmpeg -i input.mp4 -s 480x320 -c:a copy output.mp4

12. สร้างสไลด์โชว์วิดีโอจากภาพ

คำสั่งนี้สร้างสไลด์โชว์วิดีโอโดยใช้ชุดรูปภาพที่มีชื่อว่า img001.png, img002.png เป็นต้น แต่ละภาพจะมีระยะเวลา 5 วินาที (-r 1/5)

ffmpeg -r 1/5 -i img%03d.png -c:v libx264 -r 30 -pix_fmt yuv420p slideshow.mp4

13. เพิ่มภาพโปสเตอร์ลงในเสียง

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

ffmpeg -loop 1 -i image.jpg -i audio.mp3 -c:v libx264 -c:a aac -strict experimental -b:a 192k -shortest output.mp4

14. แปลงภาพเดียวเป็นวิดีโอ

ใช้พารามิเตอร์ -t เพื่อระบุระยะเวลาของวิดีโอ

ffmpeg -loop 1 -i image.png -c:v libx264 -t 30 -pix_fmt yuv420p video.mp4

15. เพิ่มคำบรรยายให้กับภาพยนตร์

การดำเนินการนี้จะนำคำบรรยายจากไฟล์ .srt FFmpeg สามารถถอดรหัสรูปแบบคำบรรยายทั่วไปทั้งหมดได้

ffmpeg -i movie.mp4 -i subtitles.srt -map 0 -map 1 -c copy -c:v libx264 -crf 23 -preset veryfast output.mkv

16. ครอบตัดไฟล์เสียง

การดำเนินการนี้จะสร้างไฟล์เสียง 30 วินาทีโดยเริ่มต้นที่ 90 วินาทีจากไฟล์เสียงต้นฉบับโดยไม่ต้องแปลงรหัส

ffmpeg -ss 00:01:30 -t 30 -acodec copy -i inputfile.mp3 outputfile.mp3

17. เปลี่ยนระดับเสียง

คุณสามารถใช้ตัวกรองระดับเสียงเพื่อเปลี่ยนระดับเสียงของไฟล์มีเดียโดยใช้ FFmpeg คำสั่งนี้จะลดระดับเสียงของไฟล์เสียงลงครึ่งหนึ่ง

ffmpeg -i input.wav -af 'volume=0.5' output.wav

18. หมุนวิดีโอ

คำสั่งนี้จะหมุนคลิปวิดีโอ 90° ตามเข็มนาฬิกา คุณสามารถตั้งค่าทรานสโพสเป็น 2 เพื่อหมุนวิดีโอ 90° ทวนเข็มนาฬิกาได้

ffmpeg -i input.mp4 -filter:v 'transpose=1' rotated-video.mp4

การดำเนินการนี้จะหมุนวิดีโอ 180° ทวนเข็มนาฬิกา

ffmpeg -i input.mp4 -filter:v 'transpose=2,transpose=2' rotated-video.mp4

19. เพิ่มความเร็วหรือลดความเร็วของวิดีโอ

คุณสามารถเปลี่ยนความเร็วของวิดีโอได้โดยใช้ตัว setpts (ตั้งค่าการประทับเวลาการนำเสนอ) ของ FFmpeg คำสั่งนี้จะทำให้วิดีโอเร็วขึ้น 8x (1/8) หรือใช้ setpts=4*PTS เพื่อทำให้วิดีโอช้าลง 4 เท่า

ffmpeg -i input.mp4 -filter:v "setpts=0.125*PTS" output.mp4

20. เพิ่มความเร็วหรือลดความเร็วของเสียง

หากต้องการเปลี่ยนความเร็วของเสียง ให้ใช้ตัวกรองเสียง atempo คำสั่งนี้จะเพิ่มความเร็วของเสียงเป็นสองเท่า คุณสามารถใช้ค่าใดก็ได้ระหว่าง 0.5 ถึง 2.0 สำหรับเสียง

ffmpeg -i input.mkv -filter:a "atempo=2.0" -vn output.mkv

Stack Exchange มีภาพรวมที่ดีในการเริ่มต้นใช้งาน FFmpeg คุณควรตรวจสอบเอกสารอย่างเป็นทางการที่ ffmpeg.org หรือวิกิที่ trac.ffmpeg.org เพื่อทราบเกี่ยวกับสิ่งที่เป็นไปได้ทั้งหมดที่คุณสามารถทำได้ด้วย FFmpeg

ดูเพิ่มเติมที่: Essential Linux Commands