FFmpeg บน Linux: ค้นพบความลับ 10 ประการ!
ต้องการรับประโยชน์เพิ่มเติมจากเทอร์มินัล Linux ของคุณหรือไม่ คุณอาจไม่สามารถเชื่อมโยงวิดีโอเข้ากับบรรทัดคำสั่งโดยสัญชาตญาณ แต่ด้วย FFmpeg คุณสามารถทำอะไรได้มากมายกับไฟล์วิดีโอ เพียงแค่พิมพ์คำสั่งง่ายๆ ในเทอร์มินัลของคุณ!
หากคุณไม่รู้จักเขา เอฟเอฟเอ็มเพ็ก เป็นเครื่องมือบรรทัดคำสั่งที่จัดการทุกอย่างที่เกี่ยวข้องกับสื่อ มีอยู่ในที่เก็บข้อมูลของระบบปฏิบัติการ Linux ส่วนใหญ่ ดังนั้นคุณเพียงแค่ต้อง ค้นหาและติดตั้งแพ็กเกจ เพื่อเริ่มใช้มัน
ไม่ว่าคุณต้องการเล่นวิดีโออย่างรวดเร็วก็ได้ ข้อมูลหรือทำกลอุบาย สำหรับการตัดต่อวิดีโอที่ยอดเยี่ยม FFmpeg ช่วยคุณได้ นี่คือสิ่งที่เป็นประโยชน์บางอย่างที่คุณสามารถทำได้ด้วย FFmpeg บนเครื่อง Linux ของคุณ
1 . เล่นวิดีโอ
คุณอาจมีเครื่องเล่นวิดีโอโปรดอยู่แล้ว และนั่นก็เป็นเรื่องดี แต่บางครั้ง คุณอาจต้องการแค่ใช้วิธีที่รวดเร็วและง่ายดายในการดูบางสิ่งบางอย่างโดยไม่ต้องเปิดแอปพลิเคชันกราฟิกเต็มรูปแบบ คุณสามารถทำได้โดยใช้เครื่องเล่นในตัวของ FFmpeg เอฟเอฟเพลย์
.
ตัวอย่างเช่น หากต้องการเล่นวิดีโอ ให้เปิดเทอร์มินัลของคุณและรัน:
ffplay ไฟล์วิดีโอของคุณ.mp4

วิดีโอของคุณจะปรากฏในหน้าต่างแยกต่างหากเพื่อพร้อมเล่น คุณสามารถควบคุมได้ด้วยคำสั่ง เช่น "q" เพื่อออก "p" เพื่อหยุดชั่วคราว และลูกศรซ้ายหรือขวาเพื่อเดินหน้าหรือถอยหลัง
หากคุณต้องการเล่นวิดีโอซ้ำ ให้รัน:
ffplay -loop 0 ไฟล์วิดีโอของคุณ.mp4
ตัวเลือก -ลูป 0
ทำให้เล่นได้เรื่อยๆ คุณสามารถแทนที่ 0 ด้วยตัวเลขใดๆ เพื่อกำหนดจำนวนครั้งที่จะทำซ้ำ

2. ต่อไปนี้เป็นวิธีการเล่นคอลเลกชันเพลงในเครื่องของคุณในหน้าต่างเทอร์มินัล Linux
โดยทั่วไปการรับข้อมูลเกี่ยวกับไฟล์วิดีโอต้องอาศัยการนำทางผ่านเมนูต่างๆ ในเครื่องเล่นสื่อหรือแม้แต่การใช้แอปพลิเคชันแยกต่างหาก แต่ด้วย FFmpeg การรับข้อมูลทั้งหมดนี้ทำได้เพียงคำสั่งเดียว
หากต้องการรับข้อมูลเกี่ยวกับสื่อ ให้รันเพียง:
ffmpeg -i ไฟล์วิดีโอของคุณ.mp4
ภายในไม่กี่วินาที คุณจะเห็นภาพรวมแบบครบถ้วน รวมถึงตัวแปลงสัญญาณ บิตเรต อัตราเฟรม และอื่นๆ

หากต้องการทราบข้อมูลโดยละเอียดเพิ่มเติมเกี่ยวกับสตรีมวิดีโอ เสียง และคำบรรยาย ให้ใช้ เอฟเอฟโพรบ
(เครื่องมือ FFmpeg):
ffprobe -show_streams –i ไฟล์วิดีโอของคุณ.mp4
หากต้องการเอาท์พุต JSON ที่สะอาดยิ่งขึ้น ให้รัน:
ffprobe -v เงียบ -print_format json -show_format -show_streams ไฟล์วิดีโอของคุณ.mp4

นอกจากนี้ ฉันขอแจ้งให้คุณทราบว่าคำสั่งเหล่านี้ช่วยให้คุณวิเคราะห์ไฟล์วิดีโอได้อย่างมีประสิทธิภาพโดยไม่จำเป็นต้องเล่นไฟล์เหล่านั้นจริงๆ
3 . บันทึกหน้าจอของคุณ
FFmpeg ยังสามารถบันทึกหน้าจอของคุณได้ด้วย ไม่ว่าคุณต้องการแสดงให้ผู้อื่นเห็นวิธีการทำสิ่งต่างๆ ใน Linux หรือสร้างการสาธิตอย่างรวดเร็ว คุณไม่จำเป็นต้องใช้โปรแกรมการเขียนโปรแกรมใดๆ การบันทึกหน้าจอ พิเศษ.
สมมติว่าคุณต้องการบันทึกหน้าจอทั้งหมดของคุณเป็นเวลา 10 วินาที คุณสามารถทำได้ด้วยสิ่งนี้:
ffmpeg -f x11grab -video_size 1920x1080 -r 30 -i :0.0+0.0 -t 10 เอาท์พุต.mp4
คำสั่งนี้จะจับภาพเดสก์ท็อปของคุณด้วยความละเอียด 1920×1080 ด้วยอัตราเฟรม 30 เฟรมต่อวินาที นอกจากนี้ยังมีตัวเลือก -ฉัน :0.0+0.0
บอก FFmpeg ว่าจะบันทึกหน้าจอไหน เช่นในกรณีของเรา :0.0
หมายถึงหน้าจอหลักและ +0,0
หมายถึงเริ่มบันทึกจากมุมซ้ายบน
หากคุณไม่ทราบขนาดหรือตำแหน่งหน้าจอของคุณ คุณสามารถค้นหาได้จากนี้:
ข้อมูล xdpy | ขนาด grep
คุณควรทราบว่าคำสั่ง FFmpeg ด้านบนจะบันทึกหน้าจอเดสก์ท็อปของคุณโดยไม่มีเสียง ดังนั้นหากคุณต้องการบันทึกเสียงพร้อมกับวิดีโอด้วย คุณจะต้องระบุอุปกรณ์อินพุตเสียงพร้อมกับอุปกรณ์อินพุตวิดีโอ
ตัวอย่างเช่นคุณสามารถใช้ตัวเลือก -f alsa -i พัลส์
ในการจับภาพทั้งวิดีโอและเสียงจากหน้าจอ:
ffmpeg -f x11grab -video_size 1920x1080 -r 30 -i :0.0+0.0 -f หรือ -i default -t 10 output.mp4
หากต้องการบันทึกหน้าต่างเฉพาะ คำสั่ง FFmpeg จะซับซ้อนกว่าเล็กน้อย แต่หากต้องการบันทึกแบบเต็มหน้าจออย่างรวดเร็ว FFmpeg ถือเป็นตัวเลือกที่ยอดเยี่ยม นอกจากนี้ หากคุณชอบทำงานจากเทอร์มินัล คุณสามารถควบคุมทุกขั้นตอนของกระบวนการบันทึกได้อย่างสมบูรณ์

4. เริ่มจับภาพหรือสตรีมสดโดยใช้โปรแกรมโอเพ่นซอร์สฟรีนี้
คุณเคยอยากจะแยกเฟรมเดียวจากวิดีโอบ้างไหม บางทีอาจจะเป็นภาพขนาดย่อหรือถ่ายภาพสวยๆ? FFmpeg ทำให้ภารกิจนี้ง่ายมาก
ตัวอย่างเช่น สมมติว่าคุณต้องการดึงภาพจากวิดีโอทุก ๆ วินาทีและบันทึกเป็นไฟล์รูปภาพ หากต้องการทำสิ่งนี้ ให้รัน:
ffmpeg -i input.mp4 -r 1 imagen-%04d.jpg

ที่นี่ตัวเลือก -ร 1
ตั้งค่าอัตราการจับภาพเป็นหนึ่งภาพต่อวินาที ดึงเฟรมจากวิดีโอทุก ๆ วินาที คุณสามารถปรับตัวเลขนี้เพื่อจับภาพบ่อยขึ้นหรือน้อยลงได้ คุณยังสามารถเปลี่ยน JPG เป็น PNG หรือรูปแบบภาพอื่นได้หากจำเป็น
5 . แปลงรูปภาพเป็นวิดีโอ
FFmpeg ไม่เพียงแค่สามารถแยกรูปภาพได้ แต่ยังสามารถรวบรวมภาพชุดหนึ่งเป็นวิดีโอได้อีกด้วย ไม่ว่าคุณต้องการสร้างสไลด์โชว์ แอนิเมชั่น หรือไทม์แลปส์ FFmpeg จะทำให้กระบวนการนั้นง่ายขึ้น
ก่อนที่จะแปลง โปรดแน่ใจว่ารูปภาพของคุณมีชื่อตามลำดับ (เช่น image-0001.jpg, image-0002.jpg) ตอนนี้แปลงภาพลำดับเหล่านี้เป็นวิดีโอด้วยคำสั่งต่อไปนี้:
ffmpeg -framerate 1 -i imagen-%04d.jpg -c:v libx264 -r30 output.mp4
ที่นี่ เราตั้งค่าตัวเลือกอัตราเฟรมเป็น 1 FPS ซึ่งหมายความว่า หากเรามี 5 เฟรม และเราต้องการวิดีโอ 5 วินาที อัตราเฟรมจะเป็น 1 คุณสามารถปรับค่าอัตราเฟรมเพื่อเพิ่มหรือลดความเร็วของวิดีโอได้
คำสั่งด้านบนจะแปลงรูปภาพเป็นวิดีโอโดยไม่ต้อง เพิ่มเพลง- แต่จะเกิดอะไรขึ้นหากคุณต้องการใส่เพลงลงในวิดีโอของคุณ? รันอันนี้แทน เพลง.mp3
ด้วยไฟล์เสียงที่คุณต้องการ:
ffmpeg -framerate 1 -i imagen_%04d.jpg -i music.mp3 -c:v libx264 -r30 -shortest slideshow.mp4
ที่นี่ตัวเลือก -สั้นที่สุด
ทำให้วิดีโอมีความยาวเท่ากับรายการที่สั้นที่สุด ดังนั้นหากเสียงยาวกว่าการนำเสนอ วิดีโอก็จะมีความยาวเท่ากับสไลด์โชว์

ImageMagick คือชุดยูทิลิตี้บรรทัดคำสั่งสำหรับการแก้ไขและการทำงานกับรูปภาพ
6 . แปลงวิดีโอเป็น MP3 หรือ GIF
คุณลักษณะอันทรงพลังที่สุดประการหนึ่งของ FFmpeg คือการแปลงวิดีโอเป็นรูปแบบต่างๆ เช่น การแปลงวิดีโอเป็น MP3 หรือการสร้างแอนิเมชั่น GIF จากวิดีโอ
หากต้องการแยกเสียงจากวิดีโอ ให้ใช้ตัวเลือก -วเอ็นซึ่งบังคับให้ FFmpeg ละทิ้งสตรีมวิดีโอและแปลงเฉพาะเสียงเป็น MP3:
ffmpeg -i อินพุต.mp4 -vn -acodec libmp3lame เอาต์พุต.mp3
คุณยังสามารถเปลี่ยนแปลงได้ เอาท์พุต.mp3
ถึง เอาท์พุต.wav
หรือรูปแบบเสียงอื่น ๆ หากคุณต้องการ
หากต้องการแปลงวิดีโอเป็น GIF ให้ใช้:
ffmpeg -i ตัวอย่างวิดีโอ.mp4 เอาต์พุต.gif
คุณสามารถแยกส่วนเฉพาะของวิดีโอและแปลงเป็น GIF ได้ด้วยวิธีนี้:
ffmpeg -ss 30.0 -t 2.1 -i ตัวอย่าง_วิดีโอ.mp4 เอาต์พุต.gif
คำสั่งนี้จะตัดวิดีโอความยาว 2.1 วินาทีจากจุดเริ่มต้นของเวลา 00:30 นาที และแปลงให้เป็น GIF
7 . เพิ่มคำบรรยายให้กับภาพยนตร์
การเพิ่มคำบรรยายในภาพยนตร์อาจมีประโยชน์มาก โดยเฉพาะเมื่อรับชมเนื้อหาในภาษาอื่น FFmpeg ทำให้กระบวนการเพิ่มคำบรรยายลงในวิดีโอของคุณง่ายขึ้น
ขั้นแรก ให้รับไฟล์คำบรรยาย ซึ่งโดยทั่วไปจะมีนามสกุลไฟล์ SRT ตัวอย่างเช่น หากคุณมีไฟล์คำบรรยาย (เช่น คำบรรยาย srt
) และวีดีโอ (อินพุต.mp4
) คุณสามารถฝังคำบรรยายลงในวิดีโอของคุณอย่างถาวรได้โดยใช้:
ffmpeg -i อินพุต.mp4 -vf "คำบรรยาย=คำบรรยาย.srt" เอาต์พุต.mp4
คำสั่งนี้จะฝังคำบรรยายอย่างถาวรเพื่อให้แน่ใจว่าคำบรรยายจะยังคงมองเห็นได้และไม่สามารถปิดได้
หากคุณต้องการคำบรรยายเสริมที่ผู้ชมสามารถเปิดหรือปิดได้ ให้ใช้สิ่งนี้:
ffmpeg -i อินพุต.mp4 -i คำบรรยาย.srt -c คัดลอก -c:s mov_text เอาต์พุต.mp4
คำสั่งนี้จะเก็บคำบรรยายไว้เป็นแทร็กแยก โดยยังคงคุณภาพดั้งเดิมของวิดีโอเอาไว้
8 . การสร้างดัชนีวิดีโอใหม่โดยไม่ต้องแปลงรหัส
บางครั้งวิดีโออาจดูมีปัญหา เช่น อาจข้าม ค้าง หรือไม่สามารถกรอไปข้างหน้าหรือกรอกลับได้ ปัญหานี้มักเกิดขึ้นจากดัชนีวิดีโอเสียหาย ในการแก้ไขปัญหานี้ คุณอาจต้องสร้างดัชนีใหม่โดยไม่ต้องเข้ารหัสวิดีโอใหม่
โชคดีที่ FFmpeg สามารถซ่อมแซมดัชนีได้โดยไม่ต้องเปลี่ยนแปลงวิดีโอด้วยซ้ำ กระบวนการนี้เรียกว่าการรีมักซ์ ซึ่งรวดเร็วเพราะรักษาคุณภาพวิดีโอและเสียงต้นฉบับไว้พร้อมทั้งแก้ไขโครงสร้างไฟล์ด้วย
ในการสร้างดัชนีวิดีโอใหม่ ให้เรียกใช้:
ffmpeg -i input.mp4 -c copy -copyts output.mp4
ที่นี่ตัวเลือก -c คัดลอก
แจ้งให้ FFmpeg คัดลอกสตรีมวิดีโอและเสียงตามที่เป็นอยู่ โดยรักษาคุณภาพและเพิ่มความเร็วของกระบวนการ ตัวเลือก -สำเนา
ช่วยให้แน่ใจว่าข้อมูลเวลาจะถูกคัดลอกอย่างถูกต้องซึ่งเป็นสิ่งสำคัญสำหรับการเล่นที่ราบรื่น
แนวทางนี้คือ มีประโยชน์ในการตรวจสอบและซ่อมแซมไฟล์ของคุณอย่างรวดเร็ว ของวีดีโอ อย่างไรก็ตาม หากปัญหายังคงอยู่ วิดีโออาจได้รับความเสียหายอย่างรุนแรง
9 . ปรับขนาดวิดีโอ
การปรับขนาดวิดีโอเป็นหนึ่งในฟีเจอร์ที่เป็นประโยชน์ที่สุดของ FFmpeg คุณสามารถปรับขนาดวิดีโอได้อย่างง่ายดาย เครือข่ายสังคมออนไลน์หน้าจอมือถือหรือเพื่อเพิ่มประสิทธิภาพการเก็บข้อมูล วิดีโอขนาดเล็กใช้พื้นที่น้อยกว่า อัปโหลดได้มากขึ้น รวดเร็วและทำงานได้ดีที่สุดในการเชื่อมต่อ ช้า.
หากต้องการปรับขนาดวิดีโอให้เป็นขนาดที่ต้องการ (เช่น 1280×720) ให้ใช้:
ffmpeg -i อินพุต.mp4 -vf สเกล=1280:720 เอาต์พุต.mp4
หากต้องการให้ FFmpeg รักษาอัตราส่วนภาพโดยอัตโนมัติ ให้ระบุเพียงมิติเดียวหรือใช้นิพจน์:
ffmpeg -i อินพุต.mp4 -vf สเกล=640:-1 เอาต์พุต.mp4
การดำเนินการนี้จะกำหนดความกว้างเป็น 640 พิกเซล และ FFmpeg จะคำนวณความสูงที่เหมาะสมเพื่อรักษาอัตราส่วนภาพ อย่างไรก็ตาม โปรดทราบว่าการลดขนาดอาจทำให้คุณภาพลดลง ดังนั้นควรเลือกความละเอียดอย่างระมัดระวัง
10 . ตัดแต่งและตัดวิดีโอ
การตัดแต่งวิดีโอช่วยให้คุณแยกเฉพาะส่วนที่จำเป็นออกมาได้โดยไม่กระทบต่อคุณภาพ เหมาะอย่างยิ่งสำหรับการลบส่วนนำ ส่วนจบ หรือข้อผิดพลาดที่ไม่ต้องการใดๆ
ตัวอย่างเช่น หากต้องการแยกส่วน 20 วินาทีที่เริ่มจาก 10 วินาทีในวิดีโอ ให้รัน:
ffmpeg -i input.mp4 -ss 00:00:10 -ถึง 00:00:30 -c คัดลอก output_trimmed.mp4
ที่นี่, -สส 00:00:10
บอกให้ FFmpeg เริ่มต้นที่วินาทีที่ 10 ในขณะที่ -ถึง 00:00:30
หยุดวิดีโอที่วินาทีที่ 30 นอกจากนี้ตัวเลือก -c คัดลอก
ช่วยให้แน่ใจว่าวิดีโอและเสียงจะถูกคัดลอกโดยไม่ต้องเข้ารหัสใหม่ ทำให้กระบวนการเร็วขึ้นมากในขณะที่ยังคงคุณภาพต้นฉบับไว้
การครอบตัดจะลบขอบที่ไม่จำเป็นออกหรือซูมเข้าไปในส่วนที่สำคัญที่สุดของวิดีโอ หากต้องการครอบตัดวิดีโอเป็นขนาด 640x480 พิกเซล ให้เริ่มจากมุมซ้ายบน ให้รันสิ่งนี้:
ffmpeg -i input.mp4 -vf "ครอบตัด=640:480:0:0" output_cropped.mp4
ฟิลเตอร์ตัดจะใช้ค่าสี่ค่า: ความกว้าง ความสูง และพิกัด x และ y ของตำแหน่งที่ควรเริ่มต้นการตัด ในกรณีนี้ ความกว้างและความสูงจะถูกตั้งเป็น 640×480 และ 0:0
ช่วยให้แน่ใจว่าการครอบตัดเริ่มต้นจากมุมซ้ายบนของวิดีโอต้นฉบับ

การฝึกฝนและเรียนรู้เคล็ดลับ FFmpeg เหล่านี้จะช่วยให้คุณเพิ่มประสิทธิภาพการทำงานและปรับให้เหมาะสมที่สุด ปริมาณงาน อย่างง่ายดาย. และจำไว้ว่านี่เป็นเพียงจุดเริ่มต้นเท่านั้น มีหลายสิ่งหลายอย่างใน FFmpeg ที่รอการสำรวจ ดังนั้นลองดำดิ่งและทดลองต่อไป!