首页 文章

Android上的mp4视频

提问于
浏览
2

我想将一些旧的Flash视频转换为1种视频格式,以便内容显示在手机上 . 我有一些mp4,它在Android上不起作用,特别是在Android 4.3上运行的Chrome 32 .

Click this link to a fiddle

它正在Android 4.3上的Chrome 32上加载mp4文件,但我认为不支持H.256

然后我去了这个网站http://techslides.com/sample-webm-ogg-and-mp4-video-files-for-html5/

而mp4视频适用于Android / Chrome .

我使用VLC检查编解码器,它们看起来一样

H264 - MPEG-4 AVC (part 10) (avc1)
Resolution: is different (working one is 560x320
Resolution: mp4 not working is 640x480
Framerate: working is 30, not working is 12
Decoded format: Planar4:2:0 YUV

然后我用ffmpeg搜索了编解码器,我发现有一个名为compatible_brands的属性:mp42icomavc1

这与具有此属性设置为兼容的非工作mp4不同:mp42mp41

文件大小也完全不同 . 这可能是一个问题 .

当我加载http://html5test.com时,Android浏览器上的Chrome表示H.264不支持MPEG-4 . 它没有说容器的任何内容 .

好吧这里是一些源代码,我认为android上的chrome不支持mp4文件,但是当我在运行Android 4.3的Sony Xperia Tablet上运行的Chrome 32上加载以下内容时 . 我有一个mp4文件,我转换为webm,但铬仍然无法运行它 . 它是8 MB所以也许尺寸是一个问题....这个mp4有不同的大小和框架 . 除此之外,我只看到与上述不同的兼容版本 .

<html>
<head>
    <meta name="viewport" content="width=device-width">
</head>
<body>
    <h4>This is mp4 video</h4>
    <video id="small" controls="controls" autoplay="autoplay" preload="auto" name="small">
        <source src="http://techslides.com/demos/sample-videos/small.mp4" type="video/mp4">
    </video>
</body>
</html>

2 回答

  • 2

    只是为了跟进 . 用于视频的H.264编解码器和用于声音编解码器的AAC包装在MP4容器中 . 根据wikipedia,使用H.264编解码器的mp4视频文件扩展名有5种不同的'profiles' . 谷歌希望转向免版税的Webm,但看起来他们只有一半的时间 . 无论如何,使用'Main'配置文件编码的mp4视频在Apple iPhone上工作,但不是我测试的任何Android移动设备:Sony Xperia,Google Nexus,Samsung Galaxy和Motorola MotoG .

    将配置文件更改为“约束基线配置文件”允许视频在所有这些Android设备以及Apple iPhone上播放 .

    ffmpeg是一个有很多开关的命令行程序 . 最简单的方法是下载Handbrake并从预先滚动的编码设置列表中选择“Universal” .

    这意味着我可以使用1个视频文件获得更广泛的支持 .

    它甚至适用于在Android上运行的Firefox,虽然我读过Firefox和Opera肯定不支持这种编解码器 . 不确定可能是设备,而不是浏览器 .

  • 7

    这产生了具有约束基线轮廓的mp4 . 视频也在较旧的Xperia上使用MediaPlayer和Android 4.1.1运行:

    > ffmpeg -i in.mp4 -profile:v baseline out.mp4
    

相关问题