Obróć plik wideo o 90 stopni za pomocą Ubuntu

19

Chcę użyć Ubuntu i najlepiej standardowych pakietów, takich jak ffmpeg, aby obrócić plik wideo .3gp o 90 stopni w dowolnym kierunku. Najlepiej wiersz polecenia lub skrypt w języku Python.

Jak mogę to zrobić?

justinhj
źródło
Odkryłem, że ffmpeg był w stanie to zrobić. Zobacz np. Fora Ubuntu: obróć wideo o 90 stopni
Simon

Odpowiedzi:

9

za pomocą VLC możesz obrócić wideo, przechodząc do Narzędzia >> Preferencje ...

I wybierz „Wszystkie” dla ustawień pokazu. Następnie przejdź do: Wideo >> Filtry >> Obróć

Po ustawieniu żądanego stopnia możesz obracać, przechodząc do Narzędzia> Efekty i filtry> Efekty wideo> Geometria ...

alternatywny tekst

Ten, który przetestowałem, to MP4, ale uważam, że VLC może również obsługiwać 3GP. mam nadzieję że to pomoże. :)

Ye Lin Aung
źródło
13
mogę zobaczyć obrócone wideo, ale jak sprawić, by zmiana się utrzymała
justinhj
vlchelp.com/…
mbernasocchi
17

Z wiersza polecenia za pomocą 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=1obróci wideo o 90 stopni w prawo; aby obrócić w lewo, użyj transpose=2. Zobacz więcej informacji w dokumentacji transpozycji .

  • -metadata:s:v rotate=""usunie wszelkie istniejące metadane dotyczące obrotu strumienia wideo; w przeciwnym razie ffmpegskopiuje go, co może spowodować dodatkowe niechciane obracanie się odtwarzacza.

  • Aby uzyskać informacje na temat ustawień kodowania wideo tutaj, zobacz ten przewodnik kodowania H.264 i przewodnik kodowania AAC, jeśli chcesz ponownie zakodować dźwięk zamiast kopiowania strumieniowego .

zła
źródło
To lepiej odpowiada na pytanie, ponieważ wyjaśnia, jak to zrobić z wiersza polecenia za pomocą ffmpeg, jak określono w pierwotnym pytaniu. Myślę, że ta odpowiedź powinna być oznaczona jako poprawna. Począwszy od maja 2017 r. Na Fedorze 25, to nadal działa, choć komunikat o wycofaniu dla kodeka MP4.
Justin W. Flory
4

Avidemux powinien być w stanie to zrobić.

Zrób Video->Filters->Rotate(x degrees)->ClosetoFile->Save->Save Video

Nifle
źródło
2

Rozwiązałem podobny problem - miałem .MOV, który został zdjęty do góry nogami (tj. Obrócony o 180 stopni), który chciałem ustawić w prawo.

W moim systemie Ubuntu 14.04 działałemavconv z zasadniczo tymi samymi opcjami wiersza poleceń, jakie podano ffmpegw odpowiedzi evilsoup . Najwyraźniej nie obsługuje transposeopcji obrotu o 180 stopni, więc zrobiłem 90 stopni zgodnie z ruchem wskazówek zegara (tj. transpose=1) Dwa razy.

Kiedy wypróbowałem minimalne opcje, otrzymałem komunikat, że:

encoder 'aac' is experimental and might produce bad results.

Add '-strict experimental' if you want to use it.

a plik wyjściowy miał zerową długość, więc dodałem -strict experimental.

Działające wiersze poleceń to:

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

Wynik był zadowalający, z niewyjaśnionymi skutkami ubocznymi:

  1. Plik pośredni był mniejszy niż oryginalny o ~ 14%.
  2. Plik wynikowy był mniejszy niż średni o ~ 18% i mniejszy niż oryginalny o prawie 30%.
  3. Plik wynikowy pokazuje miniaturę, podczas gdy oryginał i pośredni pokazują jedynie ogólną ikonę.

Nie narzekam: są pożądane; Po prostu nie rozumiem, dlaczego powstały ...

Nick Peterson
źródło
Witamy w Super User. (1) Chociaż niektóre podstawowe informacje w odpowiedzi mogą być pomocne, najlepiej skoncentrować się na rozwiązaniu problemu. Zredagowałem twoją odpowiedź, aby zilustrować; możesz go dalej edytować , jeśli uważasz, że za bardzo się zmieniłem. (2) Kolejność wyświetlania odpowiedzi może się różnić; lepiej jest wyraźnie określić inne odpowiedzi, niż powiedzieć „powyżej”. (2½) Mam nadzieję, że przedstawiłeś swoje avconvwiersze poleceń w całości, a nie tylko różnice w stosunku do ffmpegpolecenia. Twoja odpowiedź powinna być samowystarczalna; druga odpowiedź może odejść. (3) Powodzenia!
G-Man mówi „Reinstate Monica”
Zakładam również, że kiedy mówisz „wynik był zadowalający”, masz na myśli, że plik „wynik” wyglądał tak samo dobrze, jak plik oryginalny. Możesz ( zredagować swoją wiadomość) powiedzieć to wprost. (Takie informacje - tj. Czy straciłeś jakość obrazu widoczną dla oka - są ważne dla twojej odpowiedzi i nie powinny być ukryte w komentarzu.) Ponadto, założę się, że możesz pominąć cytaty i powiedzieć tylko -filter:v transpose=1 ….
G-Man mówi „Reinstate Monica”
2

Od czasu pierwszej odpowiedzi na to pytanie wprowadzono pewne zmiany w libav. Aby zachować aktualność i użyteczność, podam następujące informacje:

Możesz to osiągnąć dzięki najnowszym wersjom ffmpegi avconvprzy użyciu filtru transpozycji wideo.

avconv -i inputfile -vf transpose=clock outputfile

do obrotu w prawo.

w ffmpeg składnia jest taka sama.

ffmpeg -i inputfile -vf transpose=clock outputfile

gdzie plik wejściowy to obsługiwany wejściowy plik wideo, a plik wyjściowy to pożądany plik wyjściowy.

Na przeciwnym do ruchu wskazówek zegara zastąpić zegar z cclock

Oto fragment dokumentacji:

‘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. 

Źródła:

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

https://ffmpeg.org/ffmpeg-filters.html#transpose-1

Testowanie na Ubuntu 14.04.5 LTS, Ubuntu 16.04, Ubuntu 18.04

Starszy Geek
źródło
1
Dzięki za minimalne parametry. ffmpegpracował dla mnie (nie próbowałem avconv)
Amil Waduwawara,
Doskonały! tak, wiele postów na ten temat ffmpefzawiera wiele niepotrzebnych argumentów, dzięki!
Mariano Ruiz
@MarianoRuiz Cieszę się, że ci pomogłem. ffmpeg jest zawsze w fazie rozwoju, więc z czasem wszystko się zmienia. Nic dziwnego, że istnieją łatwiejsze metody niż niektóre starsze odpowiedzi. Twoje zdrowie!
Elder Geek