问题标签 [libyuv]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
android-studio - 将 LibYUV 集成到我的 Android Studio 项目中
我想知道如何将 libyuv 库包含到我的 Android Studio 项目中。我有“libyuv_static.a”文件,它是一个预编译的二进制文件,但我尽一切努力将它包含在我的项目中。我在 src/main 中创建了一个名为 jniLibs 的文件夹,并将二进制文件放在该文件夹中,但在运行时它不会加载库,它给了我这个:
原因:java.lang.UnsatisfiedLinkError: 无法从加载器 dalvik.system.PathClassLoader[dexPath=/data/app/com.example.myproject-1.apk,libraryPath=/data/app-lib/com 加载 libyuv2rgb。 example.myproject-1]:findLibrary 返回 null
. 有人可以分享他/她的经验。
yuv - libyuv::NV21ToI420 messes up colors
I am using libyuv to convert NV21 image format to I420:
The size of my input is 640x480.
I display the dumped file using ImageMagick's display:
However, the colors are messed up in the displayed image. The other aspects of the image look okay.
I am wondering if I am making a mistake in my code. Perhaps my stride calculations are not correct.
Note that if I use my custom function to rearrange V1U1V2U2... as U1U2...V1V2... and dump the output, it displays fine. However, I prefer to use libyuv as it has some optimization for neon, SSE2, etc. Regards.
android - Android 上的 libyuv::ConvertToI420 问题?
我设置了一个 onPreviewFrame 回调。这会得到一个包含 NV21 数据的 byte[]。我已将预览大小设置为 176*144。当设备处于横向模式时,具有 176*144 尺寸的 byte[] 是完美的,但是当设备处于纵向模式时,我仍然会得到具有相同尺寸的 byte[]。
我想将 byte[] 旋转 90 度并获得尺寸为 144*176 的 byte[]。
那么问题来了,如何旋转数据,而不仅仅是预览图呢?Camera.Parameters.setRotation 只影响拍照,不影响视频。Camera.setDisplayOrientation 明确表示它只影响显示预览,而不影响帧字节:
在查看了各种帖子后,我发现这篇文章声明使用 libyuv 的 ConvertToI420。
现在的交易是我已经编译了 libyuv 并且能够调用 libyuv::ConvertToI420 方法,但是我得到的结果 I420 在颜色和显示线条等方面都搞砸了......但是我现在得到的尺寸是144*176,图片可以看这里。
我使用的代码片段如下。
我不想裁剪图像,只需将其旋转 90(顺时针/逆时针)附加图像用于 kRotate90。
谁能指出我哪里出了问题,我强烈怀疑它是否对传递给 ConvertToI420 方法的参数做一些事情。
任何帮助表示赞赏。
ios - 为 arm64 的 iPhone 构建 pjsip 的 libyuv
我一直在尝试为 arm64 架构构建 Libyuv,然后将其集成到 PJSIP 库中。但是我没有取得任何进展,因为 Pjsip 无法找到libyuv.a
框架。
在配置 Pjsip 构建时,我使用以下命令:
这是所在的文件夹libyuv.a
。
但是,在配置时,会出现此行:
关于这里有什么问题的任何建议?
参考 :
为 iPhone 构建 Pjsip:https ://trac.pjsip.org/repos/wiki/Getting-Started/iPhone
更新
这就是我构建的方式libyuv.a
GYP_DEFINES="OS=ios target_arch=arm64 target_subarch=arm64" GYP_CROSSCOMPILE=1 GYP_GENERATOR_FLAGS="output_dir=out_ios" ./gyp_libyuv -f ninja --depth=. libyuv_test.gyp
ninja -j7 -C out_ios/Release-iphoneos libyuv_unittest
这成功地创建了库,但我没有得到连接该库的正确方法!
android - 将 YUV420Sp 图像逆时针旋转 90 度
我想将 YUV420SP 图像逆时针旋转 90。图像大小为 640*480,因此旋转后的图像大小变为 480*640,这是我不想要的,所以我想提取 480*480 数据(或任何其他正方形大小)并旋转该数据。
我见过:Rotate an YUV byte array on Android
但是这个答案顺时针旋转了 90 度。
有人可以建议一些将 YUV420Sp 数据旋转 90(逆时针)或 270 度(顺时针)而不改变图像尺寸的功能。
android - 如何通过libyuv将NV21格式的android相机预览数据转换为i420?
我通过以下方式接收 NV21 格式的预览数据:
我想通过libyuvdata
转换为 I420 格式。它似乎或在是我需要的。NV21ToI420
ConvertToI420
include/libyuv/convert.h
有没有一些例子可以做到这一点?
c - 如何通过 libyuv::I420Scale 为 android 前置摄像头实现镜像?
以下文字来自libyuv#rotation
镜像 - 水平翻转镜像功能用于水平翻转图像,这对于网络摄像头的“自我视图”很有用。
通过传递负宽度和/或高度,也可以使用 I420Scale 和 ARGBScale 函数实现镜像功能。
但是,我看到了I420Scale
这样的实现:
如果dst_width <= 0 || dst_height <= 0
, 那么return -1
;
这是在开玩笑Mirror functionality can also be achieved with the I420Scale by passing negative width and/or height
吗?
如何实现镜像功能I420Scale
?
video - 使用 FFMPEG YUV 问题连接视频文件
我正在用 FFMPEG 连接三个视频。
连接的第一个和第三个视频是使用 FFMPEG 从 AVI 文件中提取的,并转换为 MP4。
他们的编解码器信息如下。
连接中的第二个视频是使用 FFMPEG 编译的。我正在用 FFMPEG 编译帧来创建这个视频。
它的编解码器信息如下。
他们唯一不共享的是解码格式。一个是 4:4:4,一个是 4:2:2
我想我从这个链接中理解了 YUV 的含义,https: //msdn.microsoft.com/en-us/library/windows/desktop/dd391027%28v=vs.85%29.aspx?f=255&MSPPError=-2147217396
当我使用concat demuxer将这三个视频连接在一起时,它可以工作,但是当我尝试观看最终视频时,视频显示第一个文件正在播放,然后最终视频中的第二个视频显示为空白,第三个视频玩得也很好。
所以我的问题是,我如何连接 3 个 MP4 文件,但将第二个视频的解码格式更改为 4:2:2。当我编译帧时,我想我可以改变 YUV 格式,但我还不知道怎么做。
android - 我的位图中的透明像素显示为白色
我正在使用 c 代码从 gif 文件中获取,并且使用libraryframe
可以正常工作,然后我使用这种方法将返回的图像从这种格式格式转换。ffmpeg
av_read_frame
BGRA to ARGB
libyuv::ABGRToARGB
在 java 部分我收到了bitmap
,当我把它放在ImageView
画成白色的透明像素中时。
即使我循环返回bitmap pixels
并检查每个像素,我也发现它们是透明的!
什么也没发生,它仍然是白色的。然后我确实将所有透明像素转换为透明的!猜猜看,它正在工作!
我不明白为什么会这样。任何帮助,将不胜感激。
编辑1: 我从位图中获取所有像素并再次设置它们而不做任何事情,它也有效!?