【问题标题】:How to detect orientation of recorded video in android如何在android中检测录制视频的方向
【发布时间】:2015-04-28 12:52:09
【问题描述】:

朋友们您好,我是 android 开发的新手,在我的应用程序中使用相机时遇到了一些问题。我正在开发应用程序,在这个应用程序中我正在使用相机的内置功能。在我的应用程序中,相机将执行捕获视频的任务,然后我保存捕获的视频。

现在的问题是,当我拍摄视频时,我想知道以哪个方向录制的视频?因为我正在通过使用库来增加或降低视频的速度。当我在另一个活动中传递这个录制的视频时,这个视频与录制的不同。所以请帮我解决这个问题。

【问题讨论】:

    标签: android video camera orientation


    【解决方案1】:

    您可以尝试这样做:(viewSource 是您的视频源)

    MediaPlayer mp = new MediaPlayer();
    String orientation = "";
    try {
      mp.setDataSource(viewSource);
      mp.prepare();
      mp.setOnVideoSizeChangedListener(new OnVideoSizeChangedListener() {
          @Override
          public void onVideoSizeChanged(MediaPlayer mp, int width, int height) {
              if(width < height){
                  orientation = "vertical";
              } else {
                  orientation = "horizontal";
              }
          } 
      });
    } catch (IllegalArgumentException e) {
      e.printStackTrace();
    } catch (SecurityException e) {
      e.printStackTrace();
    } catch (IllegalStateException e) {
      e.printStackTrace();
    } catch (IOException e) {
      e.printStackTrace();
    }
    

    您可以在此处查看更多变体:Detect orientation of a recorded video in android

    【讨论】:

    • 谁能告诉我如何获取录制视频的高度和宽度???请回答我请....
    • 你从 OnVideoSizeChangedListener() 变成了我在上面写的。另一种方法是使用 android.media.MediaPlayer getVideoWidth() 和 getVideoHeight() 中的方法,但它们仅在已触发 size 事件时才有效
    • 好的,先生。非常感谢。
    • 先生,我正在录制视频,录制后我使用库将其失效。但是视频没有出现,因为它是由它自己旋转拍摄的,但我不想旋转它。例如,如果以横向拍摄视频,那么它必须带有横向,或者如果我以纵向拍摄视频,那么它必须带有纵向。
    • 我应该对 ffmpeg 命令进行哪些更改,以便在拍摄时获取视频?请帮帮我先生..
    【解决方案2】:

    用于录制视频的类MediaRecorder有这个:

    mMediaRecorder.setOrientationHint(90);
    

    此提示设置在 mp4 容器上,但问题是并非所有 mp4“阅读器”或提取器都考虑此方向。

    Android 似乎并不真正关心,尽管我可能是错的。 如果我使用 ffmpeg 构建 opencv,则会忽略方向,但如果我使用 quicktime 构建 opencv,则会以正确的方向显示帧。

    对文件使用 ffprobe 应该会告诉您文件是否以方向保存。

    如果 MediaPlayer 不考虑方向,您可能必须自己解析 mp4 元数据以获取方向,然后根据该方向旋转帧。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-02-26
      • 2019-12-09
      • 1970-01-01
      • 2016-02-14
      相关资源
      最近更新 更多