【问题标题】:android video orientation change after captureing video捕获视频后android视频方向更改
【发布时间】:2014-08-06 11:29:44
【问题描述】:

当我们尝试使用 MediaRecorder 录制视频时,视频会在 android 和设备中正确录制,它会像录制一样显示,但是当我们可以在 VLC 或桌面的其他播放器中播放视频时,它会旋转视频并它不会正确显示。 我可以将 MediaRecorder setOrientationHint 设置为 90 度。

改变方向有什么问题,为什么?

【问题讨论】:

标签: android video mediarecorder android-mediarecorder


【解决方案1】:

我们不能在捕捉视频时直接应用固定方向。我的意思是说您在 MediaRecorder setOrientationHint 中使用了固定 90 度方向。你需要设置setOrientationHint(动态度数);

首先,您需要获取显示旋转并使用显示旋转获取角度。然后将 That Degree 设置为 setOrientationHint 方法。这对所有人都有效。这是代码。

Display display = getWindowManager().getDefaultDisplay();
int mDisplayRotation = display.getRotation();

public int getDisplayOrientationAngle() {
    Log.e("", "setDisplayOrientationAngle is call");
    int angle;

    // switch (MeasurementNativeActivity.DisplayRotation) {
    switch (mDisplayRotation) {
    case Surface.ROTATION_0: // This is display orientation
        angle = 90; // This is camera orientation
        break;
    case Surface.ROTATION_90:
        angle = 0;
        break;
    case Surface.ROTATION_180:
        angle = 270;
        break;
    case Surface.ROTATION_270:
        angle = 180;
        break;
    default:
        angle = 90;
        break;
    }
    Log.v("", "media recorder displayRotation: " + mDisplayRotation);
    Log.v("", "media recorder angle: " + angle);
    return angle;

}

mMediaRecorder.setOrientationHint(getDisplayOrientationAngle());

【讨论】:

    【解决方案2】:

    Android Documentation for MediaRecorder's setOrientationHint(int degrees)函数中提取:

    此方法在视频录制过程中不会触发源视频帧旋转,而是在输出视频中添加一个包含旋转角度的合成矩阵如果输出格式是 OutputFormat.THREE_GPP 或 OutputFormat.MPEG_4 以便视频播放器可以选择正确的播放方向

    总而言之,setOrientationHint 只是在视频文件中添加某种标题,“告诉”视频播放器在播放视频时应该旋转视频。根据我的经验,VLC 播放器会忽略此标题并按录制的方式播放视频。

    我能想到的唯一解决方法是通过根据您的需要旋转视频来对视频进行后处理,尽管从资源角度来看这似乎是一个非常糟糕的决定。

    【讨论】:

      猜你喜欢
      • 2015-08-01
      • 2011-04-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-03-15
      • 1970-01-01
      • 1970-01-01
      • 2011-07-19
      相关资源
      最近更新 更多