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