gpt4 book ai didi

android - 如何在 android ndk 上使用 FFmpeg 制作视频播放器

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

我正在尝试使用 ffmpeg 制作视频播放器,我使用本教程 http://dranger.com/ffmpeg/tutorial08.html ,我理解本教程将视频转换为视频图像 YUV,我正在尝试制作从 .c 到 .java 交互的文件,我有这个

来自tutorial08(http://dranger.com/ffmpeg/tutorial08.c)的代码c,然后我做了

公共(public)类 RtspReceiver 扩展 Activity {

public SurfaceView sfv;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.principal);
sfv=(SurfaceView) findViewById(R.id.im);
}

/* load our native library */
static {
System.loadLibrary("Interface");
}

private static native void Receive(SurfaceView sf);

}

在c中,我试图了解如何使用它
JNIEXPORT void JNICALL isec_projecto_rtspreceiver_RtspReceiver_Receive(JNIEnv * env, jobject  obj, jobject Surface)
{
//what I have to put in here?
}

我怎样才能把我在java中的SurfaceView放在c中???
和其他的事情,在tutorial08.c 中如何提取视频并将它们放入java 中?我想对了吗?

最佳答案

本教程的编写并未考虑 Android 或 Java。

您可以做的一件事是完成所有 FFMPEG在你的 C 代码中的东西,把你解码的图像放在一个队列中。来自 Java SurfaceView ,然后从一个单独的线程中,您会将位图传递给 native 代码。在 native 代码中,您将使用 AndroidBitmap_lockPixels 从解码图像中填充该位图的像素。和其他类似的东西。

有一个'bitmap-plasma' NDK 中的示例。虽然和 FFMPEG 无关它显示了如何操作 Bitmap从 native 代码。

关于android - 如何在 android ndk 上使用 FFmpeg 制作视频播放器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11635630/

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