我正在尝试添加字幕到现有的电影和一切似乎如预期的工作,除了字幕轨道的背景,应该是透明的。
MediaHandler media = GetMediaHandler([[subtitlesTrack media] quickTimeMedia]);
MediaSetGraphicsMode(media, graphicsModeStraightAlpha, NULL);
我已经尝试了上面的代码在这里找到,但我不能使用GetMediaHandler和MediaSetGraphicsMode函数。也许我遗漏了一些内容。
如果可能的话,我宁愿只使用QTKit框架。
如果您在32位Mac应用程序中使用此代码作为示例,为了使alpha透明度正常工作,MediaSetGraphicsMode()的第二个参数必须是graphicsModePreBlackAlpha。
如果你使用graphicsmodestraight talpha,压缩成QuickTime媒体后的视频帧将没有alpha通道,至少在Mac OS 10.10.5下是这样。
您还需要确保使用支持alpha通道的视频编解码器-并不是所有的视频编解码器都支持alpha通道。