gpt4 book ai didi

android - 使用纹理 View 保存视频

转载 作者:行者123 更新时间:2023-12-04 23:51:29 29 4
gpt4 key购买 nike

我正在尝试使用 OEPNGL 和 android 来制作视频效果

我正在下载源代码项目:
https://www.virag.si/2014/03/playing-video-with-opengl-on-android/

在此代码中应用视频效果。但是如何将视频存储在 sdcard 中的纹理 View 中

播放视频:代码

  private void startPlaying()
{
renderer = new VideoTextureRenderer(this, surface.getSurfaceTexture(), surfaceWidth, surfaceHeight);
player = new MediaPlayer();

try
{
AssetFileDescriptor afd = getAssets().openFd("big_buck_bunny.mp4");
player.setDataSource(afd.getFileDescriptor(), afd.getStartOffset(), afd.getLength());
player.setSurface(new Surface(renderer.getVideoTexture()));
player.setLooping(true);
player.prepare();
renderer.setVideoSize(player.getVideoWidth(), player.getVideoHeight());
player.start();
}
catch (IOException e)
{
throw new RuntimeException("Could not open input video!");
}

}

应用效果代码:

私有(private)静态最终字符串 fragment ShaderCode =
"#extension GL_OES_EGL_image_external : require\n" +
"precision mediump float;" +
"varying highp vec2 v_TexCoordinate;" +
"uniform samplerExternalOES texture;" +
"uniform sampler2D chrominanceTexture;" +
"void main () {" +
"mediump vec3 yuv;" +
"lowp vec3 rgb;" +
"yuv.x = texture2D(texture, v_TexCoordinate).r;" +
"yuv.yz = texture2D(chrominanceTexture, v_TexCoordinate).rg - vec2(0.7154, 0.0721);" +
"rgb = mat3(1,1,1,0,0.2125, 0.7154, 0.0721,-.38059,0) * yuv;"+
"gl_FragColor = vec4(rgb, 1);"+

"}";

谢谢。

最佳答案

您必须使用一些外部库将其保存为视频。
例如使用 ffmpeg。
查看此链接:ffmpegDocumentation
有一个明确的文档。

关于android - 使用纹理 View 保存视频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25737387/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com