Voglio taggare il video come esplicitamente bt.601, piuttosto che "non specificato". So che i giocatori in genere scelgono bt.601 come predefinito per i video con larghezza inferiore a 1280 pixel, ma voglio chiarire che bt.601 è la matrice di colore corretta per un video.
Il punto bt601
critico è che non esiste alcuna opzione per ffmpeg o libx264, solo bt709 e alcuni altri.
Ho alcuni video che sono stati ridimensionati dall'HD e sono ancora nel BT709, ma non sono stati taggati correttamente. Quindi, quando guardo un video, a volte devo commutare manualmente il mio lettore su bt.709 . Contrassegnare esplicitamente come bt.601 comunicherà ai futuri spettatori (ad es. Me stesso) che è sicuramente bt.601, e non un video bt.709 etichettato male, quando lo guardo con mediainfo
.
Un altro caso d'uso per questo sarebbe se si ingrandiva un video bt.601 a 1280 o superiore senza fare una conversione colormatrix (usando -vf colormatrix
), i giocatori avrebbero erroneamente assunto bt.709 se non avessi specificato le informazioni sul colore.
Il colormatrix
filtro video di FFMpeg supporta bt601
come matrice di colore di input o output, ma non imposta anche tag. (Dal momento che non ha l'effetto collaterale di impostare le opzioni di colore di ffmpeg, si rifiuta persino di operare con src e dest lo stesso, come -vf colormatrix=bt601:bt601
.)
ffmpg in -color_primaries bt709 -color_trc bt709 -colorspace bt709 out
contrassegnerà il video di output come usando bt.709 per yuv <-> rgb. I tag finiscono all'interno del video bitstream stesso, non solo nel contenitore (dal momento che questa sembra essere una cosa specifica del codec, non una cosa contenitore, almeno per i contenitori mp4 e mkv).
ad es. mediainfo
uscita:
Complete name : out.mkv
...
Writing application : Lavf57.14.100
Writing library : Lavf57.14.100
Video
ID : 1
Format : AVC
...
Writing library : x264 core 148 r2638+4 afcf21c
Encoding settings : cabac=1 / ref=8 / ...
Language : English
Default : Yes
Forced : No
Color primaries : BT.709
Transfer characteristics : BT.709
Matrix coefficients : BT.709
Quindi bt.709 è facile da taggare. Il problema è che non vedo bt.601 da nessuna parte. Uno degli altri nomi è un alias o non c'è davvero modo di specificarlo esplicitamente?
x264 --fullhelp output:
--colorprim <string> Specify color primaries ["undef"]
- undef, bt709, bt470m, bt470bg, smpte170m,
smpte240m, film, bt2020
--transfer <string> Specify transfer characteristics ["undef"]
- undef, bt709, bt470m, bt470bg, smpte170m,
smpte240m, linear, log100, log316,
iec61966-2-4, bt1361e, iec61966-2-1,
bt2020-10, bt2020-12
--colormatrix <string> Specify color matrix setting ["???"]
- undef, bt709, fcc, bt470bg, smpte170m,
smpte240m, GBR, YCgCo, bt2020nc, bt2020c
ffmpeg -h full
mostra lo stesso set di opzioni per le sue opzioni di colore, che il -c:v libx264
codec video di ffmpeg passa a x264. Qualcuno di questi è un alias per bt.601 o ha una matrice cromatica numericamente equivalente?
-color_primaries smpte170m -color_trc smpte170m -colorspace smpte170m
).