【问题标题】:libstreaming - how to rotate streames video?libstreaming - 如何旋转流视频?
【发布时间】:2018-04-17 13:32:27
【问题描述】:

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

把它竖起来

session.setPreviewOrientation(90);

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

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

【问题讨论】:

  • 您使用什么流媒体方法?我想我遇到了同样的问题,当我改为mSession.getVideoTrack().setStreamingMethod(MediaStream.MODE_MEDIACODEC_API_2); 时,它解决了问题
  • @SERPRO 你能详细说明一下吗?

标签: android video stream rotation libstreaming


【解决方案1】:

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

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

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

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

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

    • 我不确定这是否真的回答了这个问题,你的后续问题确实需要在它自己的问题中提出......它不太可能在这里看到。
    • 我不需要知道这个问题。我只是想更好地帮助你。
    猜你喜欢
    • 2014-12-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-26
    • 2019-11-22
    • 2011-09-29
    • 2012-05-20
    • 1970-01-01
    相关资源
    最近更新 更多