Benvenuto su VideoMakers.net
Iscriviti per condividere la tua passione sul principale sito web italiano dedicato al VideoMaking!

Gli eventuali inserti pubblicitari all'interno delle discussioni sono visibili solo se non hai eseguito l'accesso al forum; ricordati di eseguire l'accesso o, se non sei ancora registrato, fallo QUI

Clicca qui per leggere le regole del forum
Discussioni su come: unire, tagliare, aggiungere effetti, sottotitoli, etc.

Moderatore: Moderatori

#1142906
Ho smanettato un poco con ffmpeg per fare il lavoro di conversione da 4K a 2K, finalmente ho un risultato accettabile e che funziona. Rispetto allo script su personalview, ho fatto delle modifiche per adattarlo alla shell cmd di windows. Appena possibile farò uno script per anothergui, in modo da convertire le clip in bacth.
Per ora, questo è il batch da usare:
Codice: Seleziona tutto
"C:\Program Files\ffmpeg\bin\ffmpeg.exe" -i "INPUT.MP4" -filter_complex "extractplanes=y+u+v[y][u][v]; [u] scale=w=3840:h=2160:flags=print_info+neighbor+bitexact [us]; [v] scale=w=3840:h=2160:flags=print_info+neighbor+bitexact [vs]; [y][us][vs]mergeplanes=0x001020:yuv444p,format=pix_fmts=yuv444p10le,scale=w=1920:h=1080:flags=print_info+bicubic+full_chroma_inp+full_chroma_int"  -sws_dither none  -q 0 -quant_mat hq  -c:v prores_ks -profile:v 4  -c:a copy -c:s copy OUTPUT.mov 


Questo script funziona perfettamente. Bisogna lavorare su alcune cose, come il mantenimento del time code ad esempio. può essere che sia meglio girare in mov invece che in mp4. Insomma, se qualcuno vuole provare, accetto consigli.

[AGGIUNTA SUCCESSIVA]

Codice: Seleziona tutto
<?xml version="1.0" encoding="utf-16"?>
<AnotherGUI_Presets_ver.03>
   <Preset>
      <UUID>d495ae17-099d-40bb-afa3-ebb8cbde247e</UUID>
      <Executable>ffmpeg.exe</Executable>
      <Name>GH4 UHD to 1080p 4:4:4 </Name>
      <Category><![CDATA[FCP]]></Category>
      <Description><![CDATA[Converte dai 4K UHD della GH4 in 4:2:0 a 1080p 444 10 bit prores]]></Description>
      <Arguments><![CDATA[-i "<SourceFileName>"
-filter_complex "extractplanes=y+u+v[y][u][v]; [u] scale=w=3840:h=2160:flags=print_info+neighbor+bitexact [us]; [v] scale=w=3840:h=2160:flags=print_info+neighbor+bitexact [vs]; [y][us][vs]mergeplanes=0x001020:yuv444p,format=pix_fmts=yuv444p10le,scale=w=1920:h=1080:flags=print_info+bicubic+full_chroma_inp+full_chroma_int"
  -sws_dither none
  -q 0 -quant_mat hq
  -c:v prores_ks -profile:v 4
  -c:a copy
  -c:s copy
//  -map 0
"<OutputPath><OutputFileName>.mov"

//Viene usato il ProRes_Kostya perchè ha il 4.4:4:4,
// il timecode è da verificare
]]></Arguments>
      <Arguments2><![CDATA[]]></Arguments2>
   </Preset>
</AnotherGUI_Presets_ver.03>


Quello sopra è un preset per anotheregui, per chi non ha dimestichezza con la linea di comando, nonchè se si vogliono fare conversioni in batch.
La procedura è semplice:
1) scaricare ffmpeg ultima versione da questo sito: http://ffmpeg.zeranoe.com/builds/ - se si hanno dubbi scaricare la 32 bit static, ma se si ha il sistema a 64 bit va benissimo la 64 static. Estrarre la cartella e metterla dove vi pare (io l'ho messa dentro a programmi)
2) scaricare anothergui da qui: http://www.stuudio.ee/anothergui/ estrarre e mettere dove volete (io l'ho messa in programmi x86)
3) importare in anothergui il preset sopra, che deve essere copiato ed incollato in un file con estensione .XML
4) provare a inserire un file sorgente da convertire. La prima volta il programma chiederà dove è locato ffmpeg

Provare per credere: il risultato che ci si creda o no è un prores REALMENTE 444 a 10 bit con un dettaglio da paura, molto migliore del dettaglio ottenuto riprendendo a 1080 nativi. Il prores si edita tranquillamente anche su PC.
Ultima modifica di willyfan il gio, 26 giu 2014 - 10:14, modificato 1 volta in totale.
#1142957
Dopo vari tentativi, ho visto che il codice scritto sopra non funziona benissimo, ha dei problemi sulla luminosità se si usa il setup 0-255 della Gh4, e cambia leggermente i colori se si usa il 16-255.
Ho scritto un altro script che invece è perfetto sotto quasi tutti gli aspetti:
Codice: Seleziona tutto
"C:\Program Files\ffmpeg\bin\ffmpeg.exe" -i "INPUT.mov"  -filter_complex "format=pix_fmts=yuv444p10le,scale=w=iw*2:h=ih*2:flags=print_info+neighbor+full_chroma_inp+full_chroma_int [a]; [a]format=pix_fmts=yuv444p10le,scale=w=iw/4:h=ih/4:flags=print_info+bicubic+full_chroma_inp+full_chroma_int" -sws_dither none -q 0 -quant_mat hq -c:v prores_ks -profile:v 4 -c:a copy -c:s copy -c:d copy -c:t copy "OUTPUT.mov" 


Se si usa la ripresa standard 16-235 il risultato è perfetto, con le altre opzioni ci sono dei leggerissimi cambi di luminosità dovuto all'encoding in prores, ma sono poca cosa, quasi invisibili. In ogni caso, consiglio l'impostazione 16-235.
Ho testato lo script non solo su clip della Gh4, ma anche con una immagine fatta appositamente per verificare se il passaggio da 4:2:0 a 4:4:4 funzionava, e funziona perfettamente.
L'unica cosa che non mi riesce è mantenere il timecode stream, ci sto lavorando

A breve faccio anche lo script per anothergui.
Ultima modifica di willyfan il ven, 27 giu 2014 - 16:31, modificato 3 volte in totale.
#1142958
In questo post cercherò di tenere gli aggiornamenti allo script su cui sto lavorando.
Ultima versione del 28/06/2014 - ore 20.30

Codice: Seleziona tutto
"C:\Program Files\ffmpeg\bin\ffmpeg.exe" -i "input.mov" -y -filter_complex "extractplanes=y+u+v[y][u][v]; [u] scale=w=iw*2:h=2160:in_range=full:flags=print_info+neighbor+bitexact [us]; [v] scale=w=iw*2:h=2160:in_range=full:flags=print_info+neighbor+bitexact [vs]; [y][us][vs]mergeplanes=0x001020:yuv444p,format=pix_fmts=yuv444p10le,scale=w=iw/2:h=1080:in_range=tv:flags=print_info+bicubic+full_chroma_inp+full_chroma_int" -sws_dither none -q 0 -quant_mat hq -c:v prores_ks -profile:v 4 -c:a copy  -c:s copy -c:d copy -map 0 "output.mov" 

in xml per anothergui:
Codice: Seleziona tutto
<?xml version="1.0" encoding="utf-16"?>
<AnotherGUI_Presets_ver.03>
   <Preset>
      <UUID>d495ae17-099d-40bb-afa3-ebb8cbde247e</UUID>
      <Executable>ffmpeg.exe</Executable>
      <Name>GH4 UHD to 1080p 4:4:4 </Name>
      <Category><![CDATA[FCP]]></Category>
      <Description><![CDATA[Converte dai 4K UHD della GH4 in 4:2:0 a 1080p 444 10 bit prores]]></Description>
      <Arguments><![CDATA[-i "<SourceFileName>"
-filter_complex "extractplanes=y+u+v[y][u][v]; [u] scale=w=iw*2:h=2160:in_range=full:flags=print_info+neighbor+bitexact [us]; [v] scale=w=iw*2:h=2160:in_range=full:flags=print_info+neighbor+bitexact [vs]; [y][us][vs]mergeplanes=0x001020:yuv444p,format=pix_fmts=yuv444p10le,scale=w=iw/2:h=1080:flags=print_info+bicubic+full_chroma_inp+full_chroma_int"
  -sws_dither none
  -q 0 -quant_mat hq
  -c:v prores_ks -profile:v 4
  -c:a copy
  -c:d copy
  -map 0
"<OutputPath><OutputFileName>_0.mov"

//Viene usato il ProRes_Kostya perchè ha il 4.4:4:4,
// il timecode è da verificare
]]></Arguments>
      <Arguments2><![CDATA[]]></Arguments2>
   </Preset>
</AnotherGUI_Presets_ver.03>


Per chi si volesse cimentare, spiego cosa fa lo script e quali sono gli aggiornamenti:
Noi abbiamo in ingresso un 4:2:0, ciò significa che la risoluzione del canale Y è completa (ad esempio 3840 X 2160), mentre la risoluzione delle componenti u e v è più bassa, e praticamente nel caso citato sarebbe 1920 X 1080, povvero un pixel di chroma ogni 4 (mentre nel 4:2:2 avremmo 1920 X 2160, tanto per capirci).
Inoltre, il nostro input è a 8 bit.
La prima operazione che fa lo script è di separare i piani Y, u e v, scala MA SENZA INTERPOLAZIONI u e v alla piena risoluzione, rimette insieme i piani in un formato 4:4:4 e poi riscalando a 1920 X 1080 in pratica riavremo i canali u e v alla risoluzione originale ma stavolta in una file 1920 X 1080 e non più 3840 X 2160. Questo fa si che il 4:4:4 sia REALE e non fittizio come un upscaling.
Il rescale inoltre viene effettuato a 32 bit, e re-inpacchettato in un file a 10 bit. Praticamente, sul canale di luminanza viene fatta una media tra 4 pixel a 8 bit ottenendo un REALE valore a 10 bit. Ad esempio, se ho 4 pixel di cui 2 hanno il valore 127 e due hanno il valore 128, facendo la media a 8 bit perderei la virgola (il risultato sarebbe 127,5 ma a 8 bit viene troncato) mentre a 10 bit otterrò un risultato pari a 510 (su una scala che non va più da 0 a 255 ma da 0 a 1023) che essendo un valore intero non verrà troncato.
Per cui avrò una REALE precisione a 10 bit in uscita, peraltro aiutati anche dal noise che crea del dithering ma questo è un discorso ancora più complesso.

Gli aggiornamenti fatti in questo script (28/06/2014):
1) lo scale orizzontale non è più fisso a 3840 ma è parametrizzato all'ingresso, per poter usare lo stesso script al 4K cinema che non è 3840 ma 4096.
2) E' stato aggiunto un parametro (in_range=full) perchè senza questo avevo notato che lo script dava un risultato leggermente sovrasaturato.

ATTENZIONE: al momento lo script è stato testato con il settaggio macchina impostato a 16-235. Con l'impostazione 16-255 dovrebbe funzionare comunque correttamente, forse anche meglio, ma con il settaggio 0-255 NON FUNZIONA CORRETTAMENTE, perchè vengono "clippati" i valori sotto al 16, creando una immagine molto più scura dell'originale. Se qualcuno ha consigli me li faccia sapere che aggiorniamo man mano lo script.

EDIT 28/06 h 20.30

Ho modificato gli script nelle ultime righe, ora funziona anche il timecode.
Ultima modifica di willyfan il mer, 02 lug 2014 - 00:42, modificato 6 volte in totale.
#1143420
Sto smanettando anche io per il downscale a 444 10bit, ma ancora devo provare questo metodo. Lo farò il prima possibile :appl:

Io sto facendo molti test, a breve pubblicherò un nuovo script che risolve alcune problematiche con il chroma e la luminosità.
Al momento sono ad un risultato ottimo, ma perdo il timecode.
#1143443
grazie willy
ammirevole la tua disponibilità!!

al momento sto leggendo quell'articolo che avevi postato nella discussione della GH4 e poi cercherò di fare dei test anch'io ma con il prores UHD della BlackMagic.
nel we farò delle prove… ma io ho il Mac, hai qualche suggerimento? lo so che lavori in ambiente windows, magari sai qualcosa su ffmpeg in mac osx…

edit: al momento mi sembra che non ci sia la versione di ffmpeg per osx…..
ok l'ho trovato…. ora lo testo..
#1143453
Perchè dici che non c'è per mac?
https://www.ffmpeg.org/download.html

nella pagina ufficiale dei download di ffmpeg c'è anche la versione osx.

Si deve usare da linea di comando, ma da qui in poi ti devi arrangiare perchè non conosco la shell di osx.
#1143476
Perchè dici che non c'è per mac?
https://www.ffmpeg.org/download.html

nella pagina ufficiale dei download di ffmpeg c'è anche la versione osx.

Si deve usare da linea di comando, ma da qui in poi ti devi arrangiare perchè non conosco la shell di osx.


ok grazie… devi aver scritto mentre cercavo…. è lo stesso che ho trovato io
http://ffmpegmac.net
#1143548
ancora non ho una can 4 k ma resto con interesse la sperimentazione del metodo di lavoro migliore. la pre conversione in bach potrebbe essere molto interessante.
#1143568
Sto provando un approccio differente a questa conversione.
In pratica, cerco di tenere intoccati i plane U e V, scalo solo Y e poi metto tutto insieme.
Lo script è il seguente:
Codice: Seleziona tutto
"C:\Program Files\ffmpeg\bin\ffmpeg.exe" -i "input.MOV" -filter_complex "extractplanes=y+u+v[y][u][v]; [y] scale=w=iw/2:h=1080:in_range=full:flags=print_info+bicubic+bitexact [ys]; [u] scale=w=iw*1:h=1080:in_range=full:flags=print_info+neighbor+bitexact [us];[v] scale=w=iw*1:h=1080:in_range=full:flags=print_info+neighbor+bitexact [vs]; [ys][us][vs]mergeplanes=0x001020:yuv444p,format=pix_fmts=yuv444p10le" -sws_dither none -q 0 -quant_mat hq -c:v prores_ks -profile:v 4 -c:a copy  -c:s copy -c:d copy  -map 0 output.mov" 


Questo script è un poco più veloce del precedente, ed evita di toccare i piani U e V totalmente.
Da provare, ogni feedback è benvenuto.
#1143621
intanto ho provato con compressor ad esportare da un prores UHD 422 (registrato in camera) un prores 1080p 4444.
importato il nuovo pro res 4444 1080 in davinci, nelle caratteristiche del file, mi riporta 16bit di profondità colore…. secondo voi è possibile o è fittizio?
non ho le conoscenze così approfondite ma mi sa che c'è qualcosa che non torna…. anche perché da quello che so il 4444 arriva fino a 12bit...illuminatemi!!

ho provato a smanettare velocemente con correzioni colore e, forse condizionato da quello che avevo letto (16bit), la clip 4444 1080 mi sembrava rispondere un po' meglio alle correzioni colore che quella 422…..
ma ripeto forse ero solo condizionato e di fretta…..
farò delle riprese migliori, magari sotto luce controllata e con un cartello colori e ripeterò questa prova.
#1143689
Ottimo lavoro willy...appena la prendo farò dei test su questo metodo...vedo che ti sei orientato sull'uhd invece che il 4k,questo è dovuto al fatto che il downscaling viene meglio da un file con lo stesso aspect ratio???
#1143695
Non sono orientato all'UHD. Per il momento, le prove fatte sono su file UHD ma lo script in orizzontale divide per 2 e n on ha più, come per i primi script, una dimensione prefissata. Quindi è possibile convertire anche i file 4K, usando lo stesso script. Ovviamente però i file 4K diventano 2K e non HD, ovvero 2048 X 1080.
  • 1
  • 2
  • 3
  • 4
  • 5
  • 16

Casual dating at its finest – join the leadi[…]

Make dating stress-free and enjoyable with the bes[…]

Connect casually with like-minded individuals on t[…]

La vecchia panasonic hvx201 permette il bilanciame[…]