在android上显示yuv420p

在android上显示yuv420p,android,ffmpeg,yuv,Android,Ffmpeg,Yuv,我使用ffmpeg将flv帧解码为yuv420p。但我不知道如何在android上显示它 请帮帮我 yuv420p格式在android上不受支持。您需要转换为android支持的格式之一。查找格式。您可以使用FFMPEG的sws_scale函数将格式从yuv420p转换为所需格式之一 或者,您也可以查看ffplay.c或了解转换是如何执行的。yuv420p格式在android上不受支持。您需要转换为android支持的格式之一。查找格式。您可以使用FFMPEG的sws_scale函数将格式从yu

我使用ffmpeg将flv帧解码为yuv420p。但我不知道如何在android上显示它
请帮帮我

yuv420p格式在android上不受支持。您需要转换为android支持的格式之一。查找格式。您可以使用FFMPEG的sws_scale函数将格式从yuv420p转换为所需格式之一


或者,您也可以查看ffplay.c或了解转换是如何执行的。

yuv420p格式在android上不受支持。您需要转换为android支持的格式之一。查找格式。您可以使用FFMPEG的sws_scale函数将格式从yuv420p转换为所需格式之一


或者,您也可以查看ffplay.c或了解转换是如何执行的。

我最近发布了一些我们在Android上用于FFMPEG的代码:

第一个函数fill_bitmap(),用AVFrame缓冲区的内容填充Android位图


这不是最有效的方法,但它是有效的代码。Android位图是ARGB_8888,我只是将alpha设置为零。似乎最适合sws_scale()上下文支持的格式。

我最近发布了一些我们在Android上用于FFMPEG的代码:

第一个函数fill_bitmap(),用AVFrame缓冲区的内容填充Android位图


这不是最有效的方法,但它是有效的代码。Android位图是ARGB_8888,我只是将alpha设置为零。似乎是sws_scale()上下文支持的格式的最佳匹配。

我的Android SDK是2.1。因此它不能包含Android/bitmap.h,你能告诉我如何用图像数据填充缓冲区并由BitmapFactory解码吗?非常感谢你!!对不起,我不知道这个问题的答案,我一直在使用最新的SDK。@mikerowehl:我正在用你的代码在实验室里测试。但除了最右边的一条非常窄的线外,似乎没有显示任何图像。我调试到它,发现,似乎fill_位图工作正常,我看到位图数据下的值(像素)。但是当程序跳转到Java文件MainActivity.Java时,我使用bitmap.getPixel并发现值为0。不知道为什么。@mikerowehl:我发现它可以在安卓版本2.3.5的旧设备上运行。但对于两台Nexus设备,它失败了。可能是因为旧NDK编译的ffmpeg库?谢谢你的代码。@user1914692对不起,那现在真的是旧代码了。我最近没有运行它,也没有在新设备上测试它的好方法。不过,如果有帮助的话,它是用旧工具编译的。我的Android SDK是2.1。所以它不能包含Android/bitmap.h,你能告诉我如何用图像数据填充缓冲区,并由BitmapFactory解码吗?非常感谢你!!对不起,我不知道这个问题的答案,我一直在使用最新的SDK。@mikerowehl:我正在用你的代码在实验室里测试。但除了最右边的一条非常窄的线外,似乎没有显示任何图像。我调试到它,发现,似乎fill_位图工作正常,我看到位图数据下的值(像素)。但是当程序跳转到Java文件MainActivity.Java时,我使用bitmap.getPixel并发现值为0。不知道为什么。@mikerowehl:我发现它可以在安卓版本2.3.5的旧设备上运行。但对于两台Nexus设备,它失败了。可能是因为旧NDK编译的ffmpeg库?谢谢你的代码。@user1914692对不起,那现在真的是旧代码了。我最近没有运行它,也没有在新设备上测试它的好方法。不过,如果有帮助的话,它是用旧工具编译的。