如何使用ffprobe / ffmpeg获取Mime类型
I need to pass to MediaSource.isTypeSupported?
例如,在我的计算机上,返回true:
MediaSource.isTypeSupported('video/mp4; codecs="avc1.64000d,mp4a.40.2"')
而那不是
MediaSource.isTypeSupported('video/mp4')
我不知道如何获得与给定视频的avc1.64000d,mp4a.40.2部分相对应的内容. Here是这个部分可能看起来像的更大列表.
ffprobe -show_streams -i video.mp4返回一些有趣的信息,包括
codec_type=video codec_time_base=1/40 codec_tag_string=avc1 codec_tag=0x31637661
和
codec_type=audio codec_time_base=1/48000 codec_tag_string=mp4a codec_tag=0x6134706d
我不确定我应该选择’video / mp4; codecs =“avc1.0x31637661,mp4a.0x6134706d”’,因为这会返回false,我不知道是不是因为它不是例外参数,或者因为视频确实不受支持.
解决方法
使用
Bento4,我可以使用Mime类型
mp4info video.mp4 | grep Codec
这将返回类似的东西
Codecs String: avc1.64001F Codecs String: mp4a.40.2
然后呢
MediaSource.isTypeSupported('video/mp4; codecs="avc1.64001F,mp4a.40.2"')
返回true