2

libstreaming 工作正常 - 在横向模式下。不幸的是,我的应用程序必须以纵向模式运行。预览窗口没问题 - 我可以将其设置为直立

session.setPreviewOrientation(90);

但是流的接收者仍然会侧向观看视频。有解决方案吗?

在 Android 的 Mediarecorder 中,有一个方法 setOrientationHint(int degree) 可以旋转流式传输/录制的视频。但是我在 libstreaming 中没有找到类似的东西......

4

2 回答 2

0

我以前遇到过这个问题。我实施了 3 种可能的解决方案。

  1. 将来自onPreviewFrame API 的每个 YUV 帧转换为位图,然后旋转位图,最后将位图转换回 YUV 帧。这个解决方案的缺点是视频帧被丢弃了很多(在我的例子中从 24 到 4-5 FPS)。

  2. 使用此处的代码将每个 YUV 帧顺时针旋转 90/270 度(基于相机的方向)。此解决方案的缺点是图像会失真并且视频帧也可能会丢失。

  3. 使用来自 Google 的名为libyuv的开源库。如果你有 JNI 的知识,这对你来说会很容易。顺便说一句,您可以在此处此处查看有关此库的演示。因为旋转过程在本机层处理,所以这是有效的解决方案,也是迄今为止最好的解决方案。

希望此信息对遇到此问题的任何人有所帮助。

于 2018-04-17T05:32:27.137 回答
-1

将视频质量从 (320,240) 更改为 (1280,720)。然后一旦你开始它应该被改变和旋转。顺便说一句,您是如何实现接收器的?

于 2015-09-07T01:20:37.940 回答