libstreaming 工作正常 - 在横向模式下。不幸的是,我的应用程序必须以纵向模式运行。预览窗口没问题 - 我可以将其设置为直立
session.setPreviewOrientation(90);
但是流的接收者仍然会侧向观看视频。有解决方案吗?
在 Android 的 Mediarecorder 中,有一个方法 setOrientationHint(int degree) 可以旋转流式传输/录制的视频。但是我在 libstreaming 中没有找到类似的东西......
libstreaming 工作正常 - 在横向模式下。不幸的是,我的应用程序必须以纵向模式运行。预览窗口没问题 - 我可以将其设置为直立
session.setPreviewOrientation(90);
但是流的接收者仍然会侧向观看视频。有解决方案吗?
在 Android 的 Mediarecorder 中,有一个方法 setOrientationHint(int degree) 可以旋转流式传输/录制的视频。但是我在 libstreaming 中没有找到类似的东西......
我以前遇到过这个问题。我实施了 3 种可能的解决方案。
将来自onPreviewFrame API 的每个 YUV 帧转换为位图,然后旋转位图,最后将位图转换回 YUV 帧。这个解决方案的缺点是视频帧被丢弃了很多(在我的例子中从 24 到 4-5 FPS)。
使用此处的代码将每个 YUV 帧顺时针旋转 90/270 度(基于相机的方向)。此解决方案的缺点是图像会失真并且视频帧也可能会丢失。
使用来自 Google 的名为libyuv的开源库。如果你有 JNI 的知识,这对你来说会很容易。顺便说一句,您可以在此处和此处查看有关此库的演示。因为旋转过程在本机层处理,所以这是有效的解决方案,也是迄今为止最好的解决方案。
希望此信息对遇到此问题的任何人有所帮助。
将视频质量从 (320,240) 更改为 (1280,720)。然后一旦你开始它应该被改变和旋转。顺便说一句,您是如何实现接收器的?