android - 从 AVFrame 数据中获取单个缓冲区并在 Android Bitmap/Surface/SurfaceView 上显示

标签 android ffmpeg android-ndk

我已经从 avcodec_decode_video2 函数 (FFmpeg) 解码了 AVFrame,然后将其传递给 SWS 库并从 YUV420P 格式转换为 RGB565。如何将所有颜色和线条大小信息(即 frame->data[0..3]、frame->linesize[0..3] )组合到一个缓冲区中,以及如何在 Android 设备上显示它,例如使用 Android Bitmap 或表面 View / View ?我不想使用 SurfaceFlinger,因为它不是 NDK 的官方部分,并且每个次要版本都会发生变化。

最佳答案

您只有 RGB 的 data[0] ,如果您的框架是标准尺寸的,则 linesize[0] 等于宽度。

关于android - 从 AVFrame 数据中获取单个缓冲区并在 Android Bitmap/Surface/SurfaceView 上显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8071112/

相关文章:

android - 如何在Android中使用Phonegap实现 "one time login"?

java - 除非插入 Toast 行,否则应用程序中的奇怪行为不会播放声音

c++ - OpenCV-C++ VideoCapture 无法打开视频文件

ffmpeg 将具有多个音频的 mkv 映射到具有更多音频的 mkv

php - 安全地使用 exec 和 PHP 来运行 ffmpeg

java - 获取触摸释放前后的坐标

android - 如何设置按钮背景图像以动态地将内容包装在表格布局中

java - setColorFilter 有时在 Android 可绘制对象上不起作用

java - 安卓NDK。未找到原生 Lcom 的实现

android - 现有文件中不存在 NDK 构建报告文件