Fórum Root.cz

Hlavní témata => Software => Téma založeno: makevideor 12. 06. 2017, 00:05:42

Název: Jak bezztrátově otočit video?
Přispěvatel: makevideor 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.
Název: Re:Jak bezztrátově otočit video?
Přispěvatel: P_V 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/ (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.
Název: Re:Jak bezztrátově otočit video?
Přispěvatel: Josef 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
Název: Re:Jak bezztrátově otočit video?
Přispěvatel: makevideor 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.


Název: Re:Jak bezztrátově otočit video?
Přispěvatel: Josef 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
Název: Re:Jak bezztrátově otočit video?
Přispěvatel: Jenda 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).
Název: Re:Jak bezztrátově otočit video?
Přispěvatel: makevideor 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í.
Název: Re:Jak bezztrátově otočit video?
Přispěvatel: makevideor 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)
Název: Re:Jak bezztrátově otočit video?
Přispěvatel: Quantas 11. 06. 2018, 12:02:15
Na videa z mobilu pouzivam toto:

https://github.com/mifi/lossless-cut
Název: Re:Jak bezztrátově otočit video?
Přispěvatel: jayram 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.