2013-03-11 33 views
24

Video dosyanız var. MediaInfo yardımcı programı ile açıyorum ve bu dosyada Rotation 90 (CodecID, bitrate vb. Gibi diğer niteliklerle birlikte) özelliğine sahip bir video akışı görebiliyorum.FFmpeg ile bir video akışı için rotasyon alanı ayarlayabilir miyim?

Şimdi bu özelliği Rotation 90'a sahip olmayan başka bir video dosyasına sahibim, Rotation özniteliği hiç yok.

Ffmpeg.exe'yi, Rotation 90 özniteliği eklenmiş ve başka hiçbir değişiklik yapmadan çıktı dosyası üretecek şekilde kullanabilir miyim? Gerçekten dönüşüm yapmak istemiyorum, sadece Rotation özelliğini ayarlamak istiyorum.

-metadata seçeneğini boş yere kullanmadan denedim.

cevap

57

Bu son FFmpeg'den çalışır:

ffmpeg -i input.mp4 -c copy -metadata:s:v:0 rotate=90 output.mp4 

Bu bit akışlarını stream copy, bu nedenle hiçbir kodlama yapılır. Sadece ilk video akışının meta verileri (v:0) burada değiştirilir ve oynatıcı videoyu döndürülmüş şekilde gösterecektir. (Tüm oyuncular bu destekleyecektir değildir.)

Ek notlar:

  • siz "fiziksel olarak" Video döndürmek istiyorsanız, use the transpose filter gerekiyor. Filtreleme yeniden kodlama gerektirir, bu yüzden -c copy'u kaldırmanız gerekir.

  • -c copy'u atlar ve yalnızca yeniden eşleştirmeyi değil, kodlamak istiyorsanız, ffmpeg, mevcut bir döndürme meta verileri varsa otomatik olarak videoyu döndürür. Bu davranışı -noautorotate ile devre dışı bırakabilirsiniz.

+0

Çok teşekkürler, işe yaradı! –

+0

En son ffmpeg kodunu derledim ve bu komutu çalıştırırken hata yok ama yine de video rotating.pls yardım etmiyor –

+1

@MohitChauhan Lütfen bunun aslında videoyu döndürmediğini unutmayın. Sadece dönme bayrağını ayarlar, bu da bazı oyuncuların onu döndürülmüş şekilde göstermesine neden olur. Bir komutla ilgili bir sorununuz varsa, lütfen [SU] ile ilgili bir soru sorun ve komutu ve tam konsol çıktısını gösterin. – slhck

İlgili konular