2016-12-14 40 views
0

everyVideo具有Stream信息,就像這樣。 - >#0:0(eng):視頻:h264(約束基線)(avc1/0x31637661),yuv420p,576x432 [SAR 1:1 DAR 4:3]如何使用android MediaPlayer獲取視頻流的信息,像SAR和DAR這樣的信息

我用MediaPlayer播放視頻,這個。

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

我想獲得視頻的存儲寬高比來計算顯示寬高比,我該怎麼做呢?

回答

0

存儲寬高比是視頻中水平像素與垂直像素的比率。

因此,1280x720的視頻具有16:9的SAR,640 x 480的視頻具有4:3的SAR等等。

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);