Fórum Root.cz
		Hlavní témata => Software => Téma založeno: mikesznovu  17. 03. 2023, 22:24:35
		
			
			- 
				=>
  string(1602) "Modelová situace: mám hotový  mp4/mkv()např hevc,h264) soubor s videem (tedy zdrojové klipy nemám , ani verzi v vyšším rozlišení) o délce 4800 sec a chci v části 3020-3030s  přepsat jiným videem (například aktualizace inforgrafiky), část 3230-3240 uplně smazat a na pozici 2720 vložit jiný 20sec klip
Jde to udělat tak,anichž by celé 4800s muselo procházet/ecodovat celé?
Tím myslím něco na způsob ffmpeg -c copy.
Jde to udělat na úrovni kodeku  nebo kontejneru? a který kontejner to umí? Napadá mě mkv, umí nějak slepit /navinout části klipů nebo nejdebože do jedné timeline vložit víc videí(tím by dotaz odpadl skoro) , pokud i tohle,musí mít stejné rozlišení fps, kodek? Nebo i stejné parametry enkodéru
Pokud je potřeba znát parametry enko´déru, dají se kompletně zjistit z mkv  a z mp4? Co znám,tak mkv obashuje nějaká metadata kde jsou argumenty x264, ale umíto i mp4? Jdou pak parametry enkodéru nějak rekonstruovat?
Pokud ano, je k tomu potřeba znát třeba parametry příkazové řádky ffmpeg,x26*?
Pozn: toleruje se nepřesnost kvůli klíčovým snímkům nebo GOP.(že to bude třeba useklé dřív nebo to část nahrazená později, jde o proof of koncept - dá se řešit že nahrazující klipy by obsahovaly i orig.video v reálu) Vím že někdy může dojít k časové nepřesnosti: buď při zrychleném seeku a nebo při  vytváření odvozeného klipu( úsek 3-8s z 20sec klipu)  a ještě v případě podmínky zakázaní re-encodování.(ta zde v dotazu  platí taky)
			 
			
			- 
				Já bych tu část co se má editovat přes AVIDEMUX vystříhnul v místě keyframeů. Následně to video upravil a pak zase přes AVIDEMUX složil ...
			
 
			
			- 
				toto som riesil cez ffmpeg. da sa to ale treba sa pri strihani trafit do iframu. podstatny je argument -ss ktory definuje zaciatok:
   
ffmpeg -ss 00:01:13 -i jazz.mp4 -to 00:05:39 -vcodec copy -acodec copy jazzff.mp4
na zistenie I-Framov som si spravil davno script:
#!/bin/bash
#getiframes.sh displays the timestamps of I-frames in a video file.
#can be used with the -ss option of ffmpeg
#Usage: ./getiframes.sh <video_file_name>
ffprobe -show_frames $1|grep -B 14 pict_type=I|grep pkt_pts_time=|awk -F'=' '{print $2}'|xargs -I{} date -d@"{}" -u +%H:%M:%S.%N