Drehen Sie eine Videodatei mit Ubuntu um 90 Grad

18

Ich möchte Ubuntu und vorzugsweise Standardpakete wie ffmpeg verwenden, um eine .3gp-Videodatei um 90 Grad in eine beliebige Richtung zu drehen. Vorzugsweise eine Befehlszeile oder ein Python-Skript.

Wie kann ich das machen?

justinhj
quelle
Ich habe festgestellt, dass ffmpeg dies kann. Siehe zB Ubuntu-Foren: Video um 90 Grad drehen
Simon

Antworten:

9

unter Verwendung von VLC , können Sie das Video , indem Sie auf Tools >> Einstellungen drehen ...

Und wählen Sie "Alle" für die Show-Einstellungen. Gehen Sie dann zu: Video >> Filter >> Drehen

Nachdem Sie den gewünschten Grad eingestellt haben, können Sie unter Extras> Effekte und Filter> Videoeffekte> Geometrie ... drehen.

Alt-Text

die, die ich getestet habe, ist mp4, aber ich glaube, dass VLC auch 3GP unterstützen kann. hoffe das hilft. :)

Ye Lin Aung
quelle
13
Ich kann das Video gedreht ansehen, aber wie lässt sich die Änderung
beibehalten
vlchelp.com/…
mbernasocchi
17

Von der Kommandozeile mit 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=1dreht das Video um 90 Grad im Uhrzeigersinn; Zum Drehen gegen den Uhrzeigersinn verwenden Sie transpose=2. Weitere Informationen finden Sie in der Transponierungsdokumentation .

  • -metadata:s:v rotate=""entfernt alle vorhandenen Metadaten für die Videodrehung; Andernfalls ffmpegwird es kopiert, was dazu führen kann, dass Ihr Player eine zusätzliche unerwünschte Drehung ausführt.

  • Informationen zu den Einstellungen für die Videokodierung finden Sie in diesem Handbuch zur H.264-Kodierung und im Handbuch zur AAC-Kodierung, wenn Sie das Audio neu kodieren möchten, anstatt das Streaming zu kopieren .

Übelsuppe
quelle
Auf diese Weise wird die Frage besser beantwortet, da erklärt wird, wie dies in der ursprünglichen Frage über die Befehlszeile mit ffmpeg ausgeführt wird. Ich denke, diese Antwort sollte als richtig markiert werden. Ab Mai 2017 auf Fedora 25 funktioniert dies immer noch, obwohl es sich um eine Ablehnungsmeldung für den MP4-Codec handelt.
Justin W. Flory
4

Avidemux sollte dazu in der Lage sein.

Mach es Video->Filters->Rotate(x degrees)->ClosedannFile->Save->Save Video

Nifle
quelle
2

Ich habe ein ähnliches Problem gelöst - ich hatte eine .MOV, die verkehrt herum aufgenommen wurde (dh um 180 Grad gedreht) und die ich korrigieren wollte.

Auf meinem Ubuntu 14.04-System lief ich avconvmit im Wesentlichen den gleichen Befehlszeilenoptionen wie ffmpegin der Antwort von evilsoup . Anscheinend unterstützt es keine transposeOption für eine 180-Grad-Drehung, daher habe ich die 90-Grad-Drehung transpose=1zweimal im Uhrzeigersinn ausgeführt .

Als ich minimale Optionen ausprobierte, erhielt ich eine Meldung, dass:

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

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

und die Ausgabedatei hatte die Länge Null, also habe ich die hinzugefügt -strict experimental.

Befehlszeilen, die funktionierten, waren:

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

Das Ergebnis war zufriedenstellend mit ungeklärten Nebenwirkungen:

  1. Die Zwischendatei war um ~ 14% kleiner als das Original.
  2. Die Ergebnisdatei war um ~ 18% kleiner als die mittlere und um fast 30% kleiner als die ursprüngliche Datei.
  3. Die Ergebnisdatei zeigt ein Miniaturbild, während das ursprüngliche und das Zwischenbild nur ein allgemeines Symbol zeigen.

Nicht, dass ich mich beschwere: diese sind wünschenswert; Ich verstehe nur nicht, warum sie entstanden sind ...

Nick Peterson
quelle
Willkommen bei Super User. (1) Während einige Hintergrundinformationen in Ihrer Antwort hilfreich sein können, sollten Sie sich am besten auf Ihre Lösung des Problems konzentrieren. Ich habe Ihre Antwort bearbeitet, um sie zu veranschaulichen. Fühlen Sie sich frei , es weiter zu bearbeiten , wenn Sie glauben, dass ich mich zu sehr verändert habe. (2) Die Anzeigereihenfolge der Antworten kann variieren. Es ist besser, andere Antworten explizit zu identifizieren, als "oben" zu sagen. (2½) Ich hoffe, Sie haben Ihre avconvBefehlszeilen vollständig dargestellt und nicht nur die Unterschiede zum ffmpegBefehl. Ihre Antwort sollte autark sein; Die andere Antwort könnte verschwinden. (3) Viel Glück!
G-Man sagt, dass Monica am
Außerdem gehe ich davon aus, dass wenn Sie sagen, dass das Ergebnis zufriedenstellend war, Ihre Ergebnisdatei genauso gut aussah wie die Originaldatei. Möglicherweise möchten Sie ( bearbeiten Sie Ihre Nachricht, um) dies explizit zu sagen. (Solche Informationen - dh ob Sie die für das Auge sichtbare Videoqualität verloren haben - sind für Ihre Antwort wichtig und sollten nicht in einem Kommentar versteckt werden.) Ich wette, Sie könnten die Anführungszeichen weglassen und einfach sagen -filter:v transpose=1 ….
G-Man sagt, dass Monica am
2

Seit der Beantwortung dieser Frage wurden einige Änderungen an libav vorgenommen. In einem Versuch, dies aktuell und nützlich zu halten, werde ich Folgendes bereitstellen:

Sie können dies mit den neuesten Versionen von ffmpegund avconvmithilfe des transponierten Videofilters erreichen.

avconv -i inputfile -vf transpose=clock outputfile

für Rechtslauf.

In ffmpeg ist die Syntax dieselbe.

ffmpeg -i inputfile -vf transpose=clock outputfile

wo Eingabedatei der unterstützte Eingabevideodatei und Ausgabedatei ist die gewünschte Ausgabedatei.

Für Gegenuhrzeigerdrehung ersetzen Takt mit cclock

Hier ist ein Auszug aus der Dokumentation:

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

Quellen:

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

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

Testen unter Ubuntu 14.04.5 LTS, Ubuntu 16.04, Ubuntu 18.04

Elder Geek
quelle
1
Danke für die minimalen Parameter. ffmpegarbeitete für mich (habe es nicht versucht avconv)
Amil Waduwawara
Ausgezeichnet! ja viele posts über ffmpefenthält eine menge unnötiger argumente, danke!
Mariano Ruiz
@MarianoRuiz Ich bin froh, dass es dir geholfen hat. ffmpeg ist immer in der Entwicklung, so dass sich die Dinge im Laufe der Zeit ändern. Es ist nicht überraschend, dass es einfachere Methoden gibt als einige der älteren Antworten. Prost!
Elder Geek