【问题标题】:How can I get The Video stream's info when use android MediaPlayer, the info like SAR and DAR使用android MediaPlayer时如何获取视频流的信息,SAR和DAR等信息
【发布时间】:2017-04-29 16:09:01
【问题描述】:

每个视频都有流信息,就像这样。 --> #0:0(eng): Video: h264 (Constrained Baseline) (avc1 / 0x31637661), yuv420p, 576x432 [SAR 1:1 DAR 4:3]

我用 MediaPlayer 播放视频,像这样。

MediaPlayer mInternalMediaPlayer = new MediaPlayer();
mInternalMediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
mInternalMediaPlayer.setDataSource(source);
mInternalMediaPlayer.prepareAsync();

我想获取视频的存储纵横比来计算显示纵横比,我该怎么做?

【问题讨论】:

    标签: android video media-player


    【解决方案1】:

    存储纵横比是视频中水平与垂直像素的比率。

    因此,1280x720 的视频的 SAR 为 16:9,640 × 480 的视频的 SAR 为 4:3,依此类推。

    DAR 是显示纵横比 - 如果它们匹配,则显示视频会更容易。如果它们不匹配,则需要“压缩”或扭曲像素以显示视频,并且它们的扭曲程度是像素纵横比。

    它们是这样关联的:

    • PAR = DAR/SAR

    因此,要获得存储纵横比,您只需要常规的视频纵横比即可。

    您可以使用“MediaMetadataRetriever”对象获取此信息:https://developer.android.com/reference/android/media/MediaMetadataRetriever.html

    一个例子是:

    MediaMetadataRetriever videoMetaRetriever = new MediaMetadataRetriever();
    
    
    String videoWidth = videoMetaRetriever.extractMetadata(
                        MediaMetadataRetriever.METADATA_KEY_VIDEO_WIDTH);
    
    String videoHeight = videoMetaRetriever.extractMetadata(
                        MediaMetadataRetriever.METADATA_KEY_VIDEO_HEIGHT);
    

    【讨论】:

      猜你喜欢
      • 2019-07-07
      • 2022-12-28
      • 2012-02-15
      • 1970-01-01
      • 2016-11-25
      • 2013-05-09
      • 2012-12-14
      • 2013-04-04
      • 2023-03-12
      相关资源
      最近更新 更多