비디오를 "지정되지 않은"것이 아니라 명시 적으로 bt.601로 태그하고 싶습니다. 플레이어가 일반적으로 너비가 1280 픽셀 미만인 비디오의 기본값으로 bt.601을 선택한다는 것을 알고 있지만 bt.601이 비디오의 올바른 색상 매트릭스임을 명시하고 싶습니다.
고집 포인트는 bt601
ffmpeg 또는 libx264에 대한 옵션 이 없으며 bt709 및 기타 옵션 만 있다는 것입니다.
HD에서 다운 스케일 된 동영상이 있으며 여전히 bt.709이지만 올바르게 태그가 지정되지 않았습니다. 따라서 비디오를 볼 때 때때로 플레이어를 수동으로 bt.709로 전환 해야합니다 . bt.601로 명시 적으로 태그하면 앞으로 시청자 (예 : 나 자신)에게 bt.601이라는 태그를 붙일 수 있습니다 mediainfo
.
이것의 또 다른 사용 사례는 컬러 매트릭스 변환 ()을 사용하지 않고 bt.601 비디오를 1280 이상으로 업 스케일 한 -vf colormatrix
경우 색상 정보를 지정하지 않으면 플레이어가 bt.709로 잘못 가정 한 것입니다.
FFMpeg의 colormatrix
비디오 필터는 bt601
입력 또는 출력 색상 매트릭스로 지원 하지만 태그도 설정하지 않습니다. (ffmpeg의 색상 옵션을 설정하면 부작용이 없으므로 src로 작동하지 않고 같은 것을 거부합니다 -vf colormatrix=bt601:bt601
.)
ffmpg in -color_primaries bt709 -color_trc bt709 -colorspace bt709 out
yuv <-> rgb에 bt.709를 사용하여 출력 비디오에 태그를 지정합니다. 태그는 컨테이너뿐만 아니라 비디오 비트 스트림 자체 내부로 끝납니다 (mp4 및 mkv 컨테이너의 경우 컨테이너가 아닌 코덱 관련 것으로 보이므로).
예 : mediainfo
출력 :
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
bt.709는 태그하기 쉽습니다. 문제는 bt.601이 어디에도 보이지 않는다는 것입니다. 다른 이름 중 하나가 별명입니까, 아니면 명시 적으로 지정할 방법이 없습니까?
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
ffmpeg의 -c:v libx264
비디오 코덱이 x264로 전달 되는 색상 옵션에 대해 동일한 옵션 세트를 보여줍니다 . 이 중 bt.601의 별칭이거나 수치 적으로 동등한 색상 매트릭스가 있습니까?
-color_primaries smpte170m -color_trc smpte170m -colorspace smpte170m
).