Jak bezztrátově otočit video?

makevideor

Jak bezztrátově otočit video?
« kdy: 12. 06. 2017, 00:05:42 »
Zdravím, chtěl bych poradit, jak provést rotaci videa o násobky 90°. Tedy analogie exif pro fotky v tom, že se neukládá znovu ztrátově jpg obrazová data=nebude probíhat enkódování.
-Je to možné na úrovni kontejneru "videostream  #0 otočit o 90°" (potom u jakých ano)? Ideálně pro mkv,mp4 (a s menší naléhovstí na mts,flv,avi,ts) ale budu rád za radu i k jednomu z toho výčtu.
-Případně je to možné na úrovni video kodeku "tato video stopa je otočená o 90°" (avc,hevc, mpeg4,mpeg2)?
Jaká je kompatibilita v přehrávačích nebo browserech ? On taky legendární šmejd Windows Prohlížeč fotografií taky neuměl EXIF (nevím zda doteď umí).

Za druhé by mě zajímalo něco podobného pro zvuk , prohodit  pravý a levý kanál (tedy LR->RL), případně LRB->RLB u 2.1 s Basákem.  Opět, zda to jde zařídit v kontejneru, audio kodeku a jaká je kompatibilita.



* Obojí mám na mysli tím způsobem, že se vytvoří nový videosoubor (takže mi to nestačí pro aktuálně otevřený soubor v přehřávači, tam je to otázka klávesové zkratky).
* A bez ztrátově myslím, že nechci provádět zdlouhavé kódování videa  , ale jen  zapsání stejných dat streamů do výsledného kontejneru.
« Poslední změna: 12. 06. 2017, 09:37:50 od Petr Krčmář »


P_V

  • ***
  • 227
    • Zobrazit profil
    • E-mail
Re:Jak bezztrátově otočit video?
« Odpověď #1 kdy: 12. 06. 2017, 10:55:12 »
To je velmi zajímavé téma!
Na rotaci MJPEG videa ze staršího foťáku používám toto.
https://sourceforge.net/projects/mjpeglossless/files/mjpegrotate/0.8.1/
Ale na h.264 jsem nic nenašel.

Pomocí metadat by to určitě šlo, i jednodušeji, ale 1) nástroj jsem nenašel 2) ne každý přehrávač to podporuje.
« Poslední změna: 12. 06. 2017, 10:56:43 od P_V »

Josef

Re:Jak bezztrátově otočit video?
« Odpověď #2 kdy: 12. 06. 2017, 11:08:54 »
Kód: [Vybrat]
ffmpeg -i original.mp4 -metadata:s:v rotate="-90" -codec copy otoceno.mp4
nebo +90 to uz uvidis

makevideor

Re:Jak bezztrátově otočit video?
« Odpověď #3 kdy: 12. 06. 2017, 11:40:07 »
Děkuji, ono to pravdu funguje, pro mkv a mp4, což asi stačí. Náhodou změnu fps pomocí metadat (opět -c copy) u mkv nevíš pomocí ffmpeg? mkvtoolnixgui to zvládne. Prostě se změní u streamu fps a přehrávače to přehrají zpomaleně, přibydy tam metadata Original framerate (ačkoli tento atribut ffprobe nevidí ,ale PotPlayer ano) s původním fps.



Josef

Re:Jak bezztrátově otočit video?
« Odpověď #4 kdy: 12. 06. 2017, 12:08:42 »
Náhodou změnu fps pomocí metadat (opět -c copy) u mkv nevíš pomocí ffmpeg?

Tak to pochybuji, ono totiz full frame mas obvykle tak jeden za sekundu a zbytek jsou delty, to asi bez reencodingu nedas. Kazdopadne jeden krkolomny navod jsem nasel ale nerucim jak to dopadne :)

https://superuser.com/questions/1088382/change-framerate-in-ffmpeg-without-reencoding


Jenda

Re:Jak bezztrátově otočit video?
« Odpověď #5 kdy: 12. 06. 2017, 16:31:03 »
Tak to pochybuji, ono totiz full frame mas obvykle tak jeden za sekundu a zbytek jsou delty, to asi bez reencodingu nedas.
WTF? Jemu jde jen o to přehrát existující framy pomaleji (jako kdybys napsal mplayer -speed 0.5).

makevideor

Re:Jak bezztrátově otočit video?
« Odpověď #6 kdy: 12. 06. 2017, 18:35:26 »
Ten krkolomný návod jsem četl, ale je tak krkolomný, že je furt lepší to to udělat v tom mkvtoolnixgui. Samozřejmě že logický a samozřejmý požadavek je ,že video bude mít stejný počet snímků a ten adekvátně změněnou dobu trvání.

makevideor

Re:Jak bezztrátově otočit video?
« Odpověď #7 kdy: 11. 06. 2018, 09:24:35 »

WTF? Jemu jde jen o to přehrát existující framy pomaleji (jako kdybys napsal mplayer -speed 0.5).
Ne uplně přesně řečeno.  aby to přehrál každý přehrávač zpomaleně, anižbych to určoval v přehrávači,tedy musí to být uloženo v souboru

pro jistotu kouknu ,jake mnozstvi dat zapisuje mkv...gui nebo zkusim diff (souboru+metadat)

Quantas

Re:Jak bezztrátově otočit video?
« Odpověď #8 kdy: 11. 06. 2018, 12:02:15 »
Na videa z mobilu pouzivam toto:

https://github.com/mifi/lossless-cut

Re:Jak bezztrátově otočit video?
« Odpověď #9 kdy: 02. 07. 2018, 13:07:28 »
hello,

There's no way to rotate a video without re-encoding it. So you can only appoximate the size and quality.

I recommend VirtualDub to do the rotation. It's free and fast.