Fórum Root.cz

Hlavní témata => Software => Téma založeno: mikesznovu 17. 03. 2023, 22:24:35

Název: Menší úprava části videa bez nutnosti překódování
Přispěvatel: 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)

Název: Re:Menší úprava části videosouboru bez nutnosti encodingu celého"
Přispěvatel: michaelscz 17. 03. 2023, 22:58:20
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 ...
Název: Re:Menší úprava části videa bez nutnosti překódování
Přispěvatel: e3k 18. 03. 2023, 09:57:27
toto som riesil cez ffmpeg. da sa to ale treba sa pri strihani trafit do iframu. podstatny je argument -ss ktory definuje zaciatok:
   
Kód: [Vybrat]
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:
Kód: [Vybrat]
#!/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