libstreaming - 如何旋转streames视频?

时间:2015-02-23 21:20:46

标签: android video stream rotation libstreaming

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

直立设置它

session.setPreviewOrientation(90);

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

在Android的Mediarecorder中,有一种方法 setOrientationHint(int degrees) 这将旋转流式传输/录制的视频。但我在libstreaming中找不到类似的东西......

2 个答案:

答案 0 :(得分:0)

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

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

  2. 使用代码from here顺时针旋转每个YUV帧90/270度(基于摄像机的方向)。这种解决方案的缺点是图像会失真,视频帧也可能会丢失。

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

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

答案 1 :(得分:-1)

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