Saya ingin menggunakan Ubuntu dan lebih disukai paket standar seperti ffmpeg untuk memutar file video .3gp sebesar 90 derajat ke segala arah. Lebih disukai baris perintah atau skrip Python.
Bagaimana saya bisa melakukan itu?
Saya ingin menggunakan Ubuntu dan lebih disukai paket standar seperti ffmpeg untuk memutar file video .3gp sebesar 90 derajat ke segala arah. Lebih disukai baris perintah atau skrip Python.
Bagaimana saya bisa melakukan itu?
Jawaban:
dengan menggunakan VLC , Anda dapat memutar video dengan masuk ke Alat >> Preferensi ...
Dan pilih "Semua" untuk pengaturan acara. Lalu pergi ke: Video >> Filter >> Rotate
Setelah mengatur derajat yang Anda inginkan, Anda dapat memutar dengan masuk ke Alat> Efek dan Filter> Efek Video> Geometri ...
yang saya uji adalah mp4 tapi saya percaya bahwa VLC dapat mendukung 3gp juga. semoga ini membantu. :)
Dari baris perintah, dengan ffmpeg:
ffmpeg -i input.3gp -filter:v transpose=1 \
-c:v libx264 -preset veryfast -crf 22 \
-c:a copy \
-metadata:s:v rotate="" \
output.3gp
transpose=1
akan memutar video 90 derajat searah jarum jam; untuk memutar berlawanan arah jarum jam, gunakan transpose=2
. Lihat dokumentasi transpos untuk informasi lebih lanjut.
-metadata:s:v rotate=""
akan menghapus metadata rotasi video yang ada; jika tidak, ffmpeg
akan menyalinnya yang dapat menyebabkan pemutar Anda menerapkan rotasi tambahan yang tidak diinginkan.
Untuk informasi tentang pengaturan penyandian video di sini, lihat panduan penyandian H.264 ini dan panduan penyandian AAC jika Anda ingin menyandikan ulang audio alih-alih menyalin aliran .
Saya memecahkan masalah yang sama - Saya memiliki .MOV yang diambil terbalik (yaitu, diputar 180 derajat) yang saya ingin atur.
Pada sistem Ubuntu 14.04 saya, avconv
pada dasarnya saya berlari dengan opsi baris perintah yang sama seperti yang diberikan ffmpeg
dalam jawaban evilsoup . Rupanya, itu tidak mendukung transpose
opsi untuk rotasi 180 derajat, jadi saya melakukan 90 derajat searah jarum jam (yaitu, transpose=1
) dua kali.
Ketika saya mencoba opsi minimal, saya mendapat pesan bahwa:
encoder 'aac' is experimental and might produce bad results.
Add '-strict experimental' if you want to use it.
dan file output panjangnya nol, jadi saya menambahkan -strict experimental
.
Baris perintah yang berfungsi adalah:
avconv -i IMG_orignl.MOV -filter:v 'transpose=1' -strict experimental IMG_interm.MOV
avconv -i IMG_interm.MOV -filter:v 'transpose=1' -strict experimental IMG_result.MOV
Hasilnya memuaskan, dengan efek samping yang tidak dapat dijelaskan:
Bukannya saya mengeluh: ini diinginkan; Saya hanya tidak mengerti mengapa mereka muncul ...
avconv
baris perintah Anda secara keseluruhan, dan bukan hanya perbedaan dari ffmpeg
perintah. Jawaban Anda harus mandiri; jawaban lain mungkin hilang. (3) Semoga berhasil!
-filter:v transpose=1 …
.
Ada beberapa perubahan pada libav sejak saat pertanyaan ini awalnya dijawab. Dalam upaya untuk menjaga ini tetap dan berguna saya akan memberikan followng:
Anda dapat melakukannya dengan versi terbaru ffmpeg
dan avconv
dengan menggunakan filter video transpos.
avconv -i inputfile -vf transpose=clock outputfile
untuk rotasi searah jarum jam.
dalam ffmpeg sintaksnya sama.
ffmpeg -i inputfile -vf transpose=clock outputfile
di mana inputfile adalah file video input yang didukung dan outputfile adalah file output yang Anda inginkan.
Untuk rotasi searah jarum jam meja ganti jam dengan cclock
Berikut kutipan dari dokumentasi:
‘cclock_flip’
Rotate by 90 degrees counterclockwise and vertically flip. (default)
‘clock’
Rotate by 90 degrees clockwise.
‘cclock’
Rotate by 90 degrees counterclockwise.
‘clock_flip’
Rotate by 90 degrees clockwise and vertically flip.
Sumber:
https://libav.org/avconv.html#transpose
https://ffmpeg.org/ffmpeg-filters.html#transpose-1
Menguji pada Ubuntu 14.04.5 LTS, Ubuntu 16.04, Ubuntu 18.04
ffmpeg
bekerja untuk saya (tidak mencoba avconv
)
ffmpef
menyertakan banyak argumen yang tidak perlu, terima kasih!