网络高清播放器怎么连接电视 网络高清播放器怎么使用( 二 )


return false;

2. 解析视频以获得有关其分辨率、OETF、色彩空间和色彩格式的信息 。然后将信息保存在自定义变量中 。在下面的示例中,变量被命名为VideoInfo 。
public class VideoInfo {
private int width;
private int height;
private int tf;
private int colorSpace;
private int colorFormat;
private long durationUs;
}


3. 创建一个SurfaceView对象,SDK 将使用该对象处理渲染图像 。


// surface_view is defined in a layout file.
SurfaceView surfaceView = (SurfaceView) view.findViewById(R.id.surface_view);


4.创建一个线程来从视频中解析视频流 。

渲染和转码视频
1. 创建并初始化HdrVividRender实例 。

HdrVividRender hdrVividRender = new HdrVividRender();
hdrVividRender.init();


2. 配置视频源的 OETF 和分辨率 。


// Configure the OETF.
hdrVividRender.setTransFunc(2);
// Configure the resolution.
hdrVividRender.setInputVideoSize(3840, 2160);

SDK 在安卓设备上使用时,只支持输入的渲染模式 。

3. 配置输出亮度 。此步骤是可选的 。


hdrVividRender.setBrightness(700);


4. 创建一个Surface 对象,它将用作输入 。HdrVividRender工作在渲染模式时会调用该 ***,将创建的Surface对象作为configure的inputSurface参数传递给SDK 。

Surface inputSurface = hdrVividRender.createInputSurface();

5. 配置输出参数 。
设置渲染的Surface对象的尺寸 。此步骤在输出的渲染模式中是必需的 。

// surfaceView is the video playback window.
hdrVividRender.setOutputSurfaceSize(surfaceView.getWidth(), surfaceView.getHeight());
设置缓冲输出视频的色彩空间,可在转码模式下设置输出 。此步骤是可选的 。但是,当没有设置颜色空间时,默认使用 BT.709 。

hdrVividRender.setColorSpace(HdrVividRender.COLORSPACE_P3);
设置缓冲输出视频的颜色格式,可在转码模式中设置输出 。此步骤是可选的 。但是,当没有指定颜色格式时,默认使用 R8G8B8A8 。

hdrVividRender.setColorFormat(HdrVividRender.COLORFORMAT_R8G8B8A8);


6. 当使用渲染模式作为输出模式时,需要以下API 。


hdrVividRender.configure(inputSurface, new HdrVividRender.InputCallback() {
@Override
public int onGetDynamicMetaData(HdrVividRender hdrVividRender, long pts) {
// Set the static metadata, which needs to be obtained from the video source.
HdrVividRender.StaticMetaData lastStaticMetaData = https://www.dj120.cn/baike/post/new HdrVividRender.StaticMetaData();
hdrVividRender.setStaticMetaData(lastStaticMetaData);
// Set the dynamic metadata, which also needs to be obtained from the video source.
byteBuffer dynamicMetaData = https://www.dj120.cn/baike/post/ByteBuffer.allocateDirect(10);
hdrVividRender.setDynamicMetaData(20000, dynamicMetaData);
return 0;
}
}, surfaceView.getHolder().getSurface(), null);

7. 当使用转码模式作为输出模式时,调用如下接口 。


hdrVividRender.configure(inputSurface, new HdrVividRender.InputCallback() {
@Override
public int onGetDynamicMetaData(HdrVividRender hdrVividRender, long pts) {
// Set the static metadata, which needs to be obtained from the video source.
HdrVividRender.StaticMetaData lastStaticMetaData = https://www.dj120.cn/baike/post/new HdrVividRender.StaticMetaData();
hdrVividRender.setStaticMetaData(lastStaticMetaData);
// Set the dynamic metadata, which also needs to be obtained from the video source.
ByteBuffer dynamicMetaData = https://www.dj120.cn/baike/post/ByteBuffer.allocateDirect(10);
hdrVividRender.setDynamicMetaData(20000, dynamicMetaData);
return 0;
}
}, null, new HdrVividRender.OutputCallback() {
@Override
public void onOutputBufferAvailable(HdrVividRender hdrVividRender, ByteBuffer byteBuffer,

推荐阅读