Get mime type for MediaSource.isTypeSupported

回眸只為那壹抹淺笑 提交于 2019-12-22 04:39:25

问题


How do I get the Mime type I need to pass to MediaSource.isTypeSupported with ffprobe/ffmpeg?

For instance, on my computer, that returns true:

MediaSource.isTypeSupported('video/mp4; codecs="avc1.64000d,mp4a.40.2"')

while that doesn't

MediaSource.isTypeSupported('video/mp4')

I'm not sure how to get what would correspond to the avc1.64000d,mp4a.40.2 part for a given video. Here is a larger list of what this part may look like.

ffprobe -show_streams -i video.mp4 returns a number of interesting informations, including

codec_type=video
codec_time_base=1/40
codec_tag_string=avc1
codec_tag=0x31637661 

and

codec_type=audio
codec_time_base=1/48000
codec_tag_string=mp4a
codec_tag=0x6134706d

I'm not sure I should go with 'video/mp4; codecs="avc1.0x31637661,mp4a.0x6134706d"' since this returns false and I don't know if it's because it's not the excepted argument or because the video is indeed not supported.


回答1:


Using Bento4, I can get the Mime type with

mp4info video.mp4 | grep Codec

That will return something like

Codecs String: avc1.64001F
Codecs String: mp4a.40.2

And then do

MediaSource.isTypeSupported('video/mp4; codecs="avc1.64001F,mp4a.40.2"')

which returns true :)

Bento4 is focussed on mp4 so I'm not sure how it'd work on other formats




回答2:


Any other way to convert the 0x31637661 part to avc1.64001F?

EDIT: since I have not installed Apple's XCode and no intention to - I have found the javascript project of MP4Box the best way to find the codec information in the right format:

http://download.tsi.telecom-paristech.fr/gpac/mp4box.js/filereader.html



来源:https://stackoverflow.com/questions/35616494/get-mime-type-for-mediasource-istypesupported

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!