video - ffmpeg 将 mov 文件转换为 mp4 用于 HTML5 视频标签 IE9

标签 video ffmpeg internet-explorer-9 html5-video codec

我在这里和谷歌上到处查看 - 没有适用于 IE9 的有效命令。 一些 IE9 是如何丢失某些东西的。 我尝试过的所有方法在其他地方都有效:chrome、safari、移动设备等…… 我想要一个可以转换它的命令,我可以在每台设备上使用它,假设在 HTML5 视频标签中支持 mp4。

我使用这个命令:

ffmpeg -i movie.mov -vcodec copy -acodec copy out.mp4
ffmpeg -i movie.mov -vcodec libx264 -vprofile high -preset slow -b:v 500k -maxrate 500k -bufsize 1000k -vf scale=-1:480 -threads 0 -acodec libvo_aacenc -b:a 128k -pix_fmt yuv420p outa.mp4
ffmpeg -i movie.mov -b:V 1500k -vcodec libx264 -preset fast -g 30 adel.mp4
ffmpeg -i movie.mov -acodec aac -strict experimental -ac 2 -ab 160k -vcodec libx264 -preset slow -f mp4 -crf 22 lamlam.mp4
ffmpeg -i movie.mov -acodec aac -strict experimental -ac 2 -ab 160k -vcodec libx264 -preset slow -profile:v baseline -level 30 -maxrate 10000000 -bufsize 10000000 -f mp4 -threads 0 adiel.mp4

等.. 所有这些命令再次生成一个有效的 mp4 文件,该文件适用于 chrome、safari 等...甚至当我使用窗口媒体播放器在 Windows 本身中启动它们时也能正常工作。 当我将此文件放入 IE9 中的视频标签(我正在使用 http://videojs.com/)时,它无法正常工作!

<div class="vidoco-content" style="margin-top: 20px;">
<video id="divVid" class="video-js vjs-default-skin vidoco-center" controls preload="none" width="600" height="400" poster="<?php echo(DOMAIN); ?>static/test.jpg">
    <source src="<?php echo(DOMAIN); ?>static/out.mp4" type="video/mp4" />
</video>

如果我使用软件miro video converter将相同的 mov 文件转换为 mp4 - 它转换得很好,我可以在 IE9 中播放它! miro 转换器还在其内部使用了 embedd ffmpeg,因此我确信它只是正确的 ffmpeg 命令和参数的一部分。 在我的 apache htaccess 中,我为我的文件设置了正确的 mime 类型,在 IE 开发人员工具中我发现它确实正确:

AddType audio/aac .aac
AddType audio/mp4 .mp4 .m4a
AddType audio/mpeg .mp1 .mp2 .mp3 .mpg .mpeg
AddType audio/ogg .oga .ogg
AddType audio/wav .wav
AddType audio/webm .webm

AddType video/mp4 .mp4 .m4v
AddType video/ogg .ogv
AddType video/webm .webm

我为此苦苦挣扎了很长时间,所以非常感谢任何帮助。

谢谢!

最佳答案

对于ffmpeg:

ffmpeg -i {input}.mov -vcodec h264 -acodec aac -strict -2 {output}.mp4

您还可以添加 -q:v/-q:a 参数来指定视频的质量。您也可以使用 HandBrake,它是一种比 ffmpeg 更简单的编码器。

对于HandBrake:

handbrakecli -i {input}.mov -e x264 -E facc -o {output}.mp4

编辑:我找到了解决方案!这是一个 ZIP,其中包含我在 IE 9 和 Firefox 上测试过的工作演示!

http://www.mediafire.com/download/kyavlpudybg0bc1/HTML5_video.zip

此外,上面的演示有一个 flash 回退,所以它应该适用于 IE8 和更低版本。

使用相同的 ffmpeg 命令。
编辑:我不得不重新上传视频,因为我的托管服务目前已关闭。现在它托管在 mediafire 上。我发现它们是最好的文件共享服务。广告最少,无需注册,无需等待 30 秒。

此外,请查看 videojs 网站上的讨论: http://help.videojs.com/discussions/problems/1020-ffmpeg-command-produce-your-demonstration-video .

非常重要!确保在本地运行时单击“允许事件内容”按钮以允许视频!

我遇到的问题和我的解决方案的视频:请参阅上面提到的我的演示。

测试时使用的 HTML 代码:

<!DOCTYPE html>
<html>
<body>

<video width="320" height="240" controls>
  <source src="movie.mp4" type="video/mp4">
  <source src="movie.ogg" type="video/ogg">
  Your browser does not support the video tag.
</video>

</body>
</html>

我分析了一个 w3schools 提供的工作测试视频(它在 IE 上工作),我发现他们使用 HandBrake 对视频进行编码。

Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'movie.mp4':
  Metadata:
    major_brand     : mp42
    minor_version   : 0
    compatible_brands: mp42isomavc1
    creation_time   : 2010-05-11 10:32:06
    encoder         : HandBrake 0.9.4 2009112300
  Duration: 00:00:12.61, start: 0.000000, bitrate: 202 kb/s
    Chapter #0.0: start 0.000000, end 12.612000
    Metadata:
      title           :
    Stream #0:0(und): Video: h264 (Constrained Baseline) (avc1 / 0x31637661), yuv420p, 320x240, 80 kb/s, 29.65 fps, 29.97 tbr, 90k tbn, 59.31 tbc
    Metadata:
      creation_time   : 2010-05-11 10:32:06
    Stream #0:1(und): Audio: aac (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 115 kb/s
    Metadata:
      creation_time   : 2010-05-11 10:32:06
    Stream #0:2(und): Subtitle: mov_text (text / 0x74786574)
    Metadata:
      creation_time   : 2010-05-11 10:32:06`

关于video - ffmpeg 将 mov 文件转换为 mp4 用于 HTML5 视频标签 IE9,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15524776/

相关文章:

ffmpeg - FFMPEG多帧提取

batch-file - 尝试使用 ffmpeg 将 wav 与视频文件合并

ffmpeg - 将mp4转换为质量较低的mpt

css - ie9中css失败的根本原因是什么

java - 如何检索与从 RESTful Web 服务发送的视频或图像关联的元数据?

Nginx 只允许我的域访问视频 url

javascript - console.log 在打开开发者工具的情况下使用 ie9 中的警报

javascript - 使用 JavaScript 在 IE9 中获取数据列表选项

iphone - 我可以避免在 iPhone 或 android 上使用 HTML5 的原生全屏视频播放器吗?

c++ - 如何播放视频?