ฉันจะหมุนวิดีโอได้ 180 องศาด้วย avconv ได้อย่างไร


24

ฉันต้องการหมุนวิดีโอ (mp4) 180 องศา แต่ไม่พลิก เป็นไปได้ที่จะทำกับ avconv?


ฉันพบกับ คำตอบทั้งสองที่มีอยู่ซึ่งทำงานกับไฟล์ MP4 จากกล้อง Hero 3 แต่หลังจากฉันเพิ่มการ-c:aคัดลอกไปยังคำสั่ง (ก่อนหน้าชื่อไฟล์เอาต์พุต) ฉันยังพบว่ารุ่นที่สองมีคุณภาพที่แยกไม่ออก แต่เร็วกว่ารุ่นแปลที่ถูกผูกมัดประมาณ 50%
Simon

คำตอบ:


31

เป็นไปได้โดยใช้transposeตัวกรองวิดีโอ คุณไม่สามารถหมุนได้ 180 องศา แต่คุณสามารถหมุนได้ 90 องศาและกรองฟิลเตอร์

avconv -i video.mp4 -vf transpose=1,transpose=1 out.mkv

ดูtransposeในavconvmanpage: http://manpages.ubuntu.com/manpages/quantal/en/man1/avconv.1.html


สิ่งนี้หมุนวิดีโอของฉัน แต่คุณภาพลดลง (ความละเอียดและ framerate) มีขนาดใหญ่มาก (ไฟล์ iphone .mov)
Gringo Suave

transpose = นาฬิกาทำงานตอนนี้ดูคำตอบของฉัน
Elder Geek

15

ใช่ แต่คุณจะต้องเพิ่มตัวเลือกเพิ่มเติมในคำสั่งเพื่อให้ทำงานได้อย่างถูกต้อง การแปลงและ vflip / hflip ควรทำเคล็ดลับ แต่ถ้าคุณไม่บอกรายละเอียดเพิ่มเติมเกี่ยวกับสิ่งที่คุณต้องการ avconv คุณอาจจะได้ผลลัพธ์ที่มีคุณภาพต่ำมากลอง:

 avconv -i original.mp4 -vf "hflip,vflip" -codec:v libx264 -preset slow -crf 20 -codec:a copy flipped.mp4

สังเกตเห็น-crfตัวเลือก ที่กำหนดคุณภาพผลผลิต มันเริ่มจาก 0 (ไม่สูญเสีย) ขึ้นไปอย่างลอการิทึม คุณอาจต้องการค่าระหว่าง 19 และ 25 ในกรณีส่วนใหญ่ -presetตั้งค่าความเร็วของการเข้ารหัสทั้ง "ช้า", "ปานกลาง" หรือ "เร็ว" ช้าควรทำให้คุณมีขนาดไฟล์เล็กลงด้วยการแลกเปลี่ยนที่ชัดเจน คุณควรปรับ-codec:vให้ตรงกับต้นฉบับ หากคุณไม่ได้ตั้งค่าตัวเลือกเหล่านี้คุณจะได้รับค่าเริ่มต้นซึ่งใช้งานไม่ได้เมื่อพลิกวิดีโอ iphone


Unrecognized option 'preset' Failed to set value 'slow' for option 'preset' นั่นคือสิ่งที่ฉันได้รับ
Karel Bílek

... และหากไม่มีมันฉันจะได้รับUnknown encoder 'libx264'
Karel Bílek

1
apt-get install libavcodec-extra-53แก้ไขได้
Karel Bílek

6

วิธีเพิ่มเติมกับ avconv คือการใช้ตัวกรอง vflip และ hflip ควรทำงานได้เร็วขึ้นและอาจมีคุณภาพดีกว่า:

avconv -i video.mp4 -vf vflip,hflip out.mp4

เหมือนกัน: สิ่งนี้หมุนวิดีโอของฉัน แต่การลดลงของคุณภาพ (ความละเอียดและอัตราเฟรม) นั้นสูงมาก (ไฟล์ iphone .mov)
Gringo Suave

1
@GringoSuave wcarlson ได้ให้ตัวอย่างที่ถูกปล้นคุณยังต้องเพิ่ม -codec: v ... และแท็กอื่น ๆ ทั้งหมด
v010dya

1

ฉันทำอย่างนี้:

avconv -i invertedOne.mp4 -c:a copy -vf "hflip,vflip" rightOne.mp4

วิดีโอ Full HD ผลลัพธ์ที่ยอดเยี่ยมพร้อมการสูญเสียคุณภาพที่มองไม่เห็น


1

สำหรับ avconv หรือ ffmpeg ไม่เกิน 14.04 หรือใหม่กว่า

มีการเปลี่ยนแปลงบางอย่างกับเอกสาร libav เนื่องจากคุณภาพ @phoibos ตอบคำถามนี้ คุณสามารถหมุนวิดีโอ 180 องศาเพื่อหลีกเลี่ยงการพลิกโดยการผูกมัด 2 90 องศาคำสั่งเข้าด้วยกัน (คั่นด้วยเครื่องหมายจุลภาค) ฉันทำสิ่งนี้สำเร็จด้วยคำสั่ง

avconv -i inputfile -vf ทรานสโพส = นาฬิกา, ทรานสโพส = นาฬิกา outputfile

สำหรับการหมุนตามเข็มนาฬิกา

ใน ffmpeg ไวยากรณ์จะเหมือนกัน

ffmpeg -i inputfile -vf ทรานสโพส = นาฬิกา, ทรานสโพส = นาฬิกาเอาต์พุต

โดยที่ inputfile เป็นไฟล์วิดีโออินพุตที่สนับสนุนและ outputfile เป็นไฟล์เอาต์พุตที่คุณต้องการ

สำหรับการหมุนตามเข็มนาฬิกาทวนเข็มนาฬิกาแทนที่ด้วย cclock

แหล่งที่มา:

https://libav.org/avconv.html#transpose

การทดสอบบน Ubuntu 14.04.5 และ 16.04 LTS

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