头像
yntang66
帖子: 10
注册时间: 2010-10-13 23:41

编码时忘写colorprim、transfer、colormatrix旗标, 如何不重新编码添加旗标?

480p的DVD做Upconv到720p, x264编码的时候命令行忘记写colorprim、transfer、colormatrix旗标了...
有没有方法可以在不用重新编码的情况下, 添加这3个旗标呢?
以前貌似看到某个帖子里有提到, 实在是搜不到了... 向各位大人请教, 谢谢^^ {:cat_16}
afree
帖子: 4
注册时间: 2012-07-20 9:39

Re: 编码时忘写colorprim、transfer、colormatrix旗标, 如何不重新编码添加旗标?

roozhou版的ffmpeg可以,但用完后,总感觉那个视频文件有点怪怪的,反正我是试过,改过一些其它信息,在我的移动视频就出现花屏,但在电脑上播放又没有问题。
头像
06_taro
核心会员
核心会员
帖子: 998
注册时间: 2010-09-22 18:32
来自: United Kingdom
联系: 网站

Re: 编码时忘写colorprim、transfer、colormatrix旗标, 如何不重新编码添加旗标?

舉例:
mp4box -add input.264#trackID=1:vidformat=ntsc:fullrange=off:colorprim=bt709:transfer=bt709:colmatrix=bt709 -new output.mp4

vui隨便改,具體可以看mp4box -h import
つまんねー事聞くなよ!

I, personally, for me, believe (obviously sometimes) that my OS choice is right. That's me. I'm not telling you that you should believe it. Learn the facts, and the origins behind the facts, and make up your own damn mind. That's why you have one. (source)

Follow me: @06_taro

304——
为纪念伟大的宇宙史上最强压制304先生,联合国教科文组织决定,将每年的第304天,即平年的10月31日或者闰年的10月30日,定为世界304日。
likunplus
帖子: 5
注册时间: 2012-06-13 21:08

Re: 编码时忘写colorprim、transfer、colormatrix旗标, 如何不重新编码添加旗标?

是 color encoding system 吧?
你写了旗标 解码器也不认的,依然 bt709
需要播放端手动指定
头像
06_taro
核心会员
核心会员
帖子: 998
注册时间: 2010-09-22 18:32
来自: United Kingdom
联系: 网站

Re: 编码时忘写colorprim、transfer、colormatrix旗标, 如何不重新编码添加旗标?

matrix可能認可能不認,僅在yuv->rgb時完成,有可能是解碼器也有可能是渲染器來做,至少lav和madvr在有旗標時都是處理正確的。

primaries和transfer都只和渲染器有關,madvr在有旗標時應該都是正確傳遞的,其他渲染器不一定。

另外sd->hd時matrix coefficients為了保持各種渲染器都沒問題是應該做轉換的,但是轉換同時不影響primaries和gamma,所以這兩個不要隨便標709,上面mp4box僅僅是修改vui的用法舉例而言,實際應該按原來的標。根據ntsc/pal有可能hd和sd用的相同,也可能不同,如果不知道原來是啥就不要標,至少比亂標一個可能錯誤的要好。

例如對primaries來說,smpte240m與SD下NTSC的smpte170m兩個旗標數值上是相同的,而與SD下PAL的bt470bg不一樣,和HD的bt709也不一樣。(不過這三個相差其實很小,譬如PAL即使把HD和SD的標錯差別都幾乎可以忽略不計,NTSC相比略大但是也在基本可以忽略的範圍內)
對transfer來說,SD下NTSC的smpte170m與HD下的bt709兩個旗標數值也是一樣的,但是與SD下PAL的bt470bg用的是不一樣的。
matrix則是SD下NTSC的smpte170m與PAL的bt470bg數值是同樣的,所以雖然經常被標錯,譬如NTSC的被按照DGIndex提示的標成了bt470bg,但也並沒有產生實際影響…
當然即使是上面這種數值相同的兩個旗標,最好還是嚴格按照標準去標,所以如果不清楚的話寧可不要標…
另外還要考慮到一般DVD裡沒有這些flag,只能假設是標準默認來,但實際上不保證不是亂做的(其實就算有旗標,按11區的尿性也沒法保證不是瞎搞的,譬如亂到無解的rff旗標問題…)
つまんねー事聞くなよ!

I, personally, for me, believe (obviously sometimes) that my OS choice is right. That's me. I'm not telling you that you should believe it. Learn the facts, and the origins behind the facts, and make up your own damn mind. That's why you have one. (source)

Follow me: @06_taro

304——
为纪念伟大的宇宙史上最强压制304先生,联合国教科文组织决定,将每年的第304天,即平年的10月31日或者闰年的10月30日,定为世界304日。
头像
yntang66
帖子: 10
注册时间: 2010-10-13 23:41

Re: 编码时忘写colorprim、transfer、colormatrix旗标, 如何不重新编码添加旗标?

再度遇到同样的问题... 完全没想到上次的提问居然有人回复了!
谢谢taro大, 受益匪浅! 以后都知道该怎么处理了~

PS.: 原来DGIndex的提示一直标错了><|
头像
dgwxx
管理猿
帖子: 771
注册时间: 2010-09-19 20:42
联系: 网站

Re: 编码时忘写colorprim、transfer、colormatrix旗标, 如何不重新编码添加旗标?

其实错的不是dgindex……而且dgindex也不是“一直错”,而是“不一定对”。
dgindex只是显示源文件里的flag而已,至于源文件里对不对跟dgindex无关,只跟源的制作过程是否正确有关。
日常推 @dgwxx: 基本没什么技术的话题,欢迎没事看看消遣。
► 显示剧情透露 平庸的rip
► 显示剧情透露 “不知道”的五大理由
头像
yntang66
帖子: 10
注册时间: 2010-10-13 23:41

Re: 编码时忘写colorprim、transfer、colormatrix旗标, 如何不重新编码添加旗标?

恩恩, 之前的回复可能不是很严谨, 我指的"一直标错"只是针对Colorimetry这一项.
自己处理过的大部分DVD在DGIndex里都是显示NTSC 和 BT.470-2 B,G*, 就像下面这样:

Stream Type: MPEG2 Program
Profile: main@main
Frame Size: 720x480
Display Size: 720x480
Aspect Ratio: 4:3 [2]
Frame Rate: 29.970030 fps
Video Type: NTSC
Frame Type: Interlaced
Coding Type: P
Colorimetry: BT.470-2 B,G*
Frame Structure: Frame
Field Order: Top

按taro大的意思和X264的相关链接资料, NTSC的SD应该是smpte170m.
印象中好像只见过1张DVD在DGIndex标的是smpte170m...
所以, 是制作DVD的时候被标错的, 还是DGIndex标示错误?
我理解的是: 像taro大说的, 一般DVD里没有这些flag, 又因为都一样, 就都被标成BT.470-2 B,G*了.
而实际上, NTSC的SD正确的还应该是smpte170m.

回到 “视频编码器 / Video encoder discussion”