ffmpeg 将 mov 文件转换为 mp4 用于 HTML5 视频标签 IE9 [英] ffmpeg convert mov file to mp4 for HTML5 video tag IE9

查看:59
本文介绍了ffmpeg 将 mov 文件转换为 mp4 用于 HTML5 视频标签 IE9的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

我使用这个命令:

ffmpeg -i movie.mov -vcodec copy -acodec copy out.mp4ffmpeg -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 -piuv4.fmt outamp4ffmpeg -i movie.mov -b:V 1500k -vcodec libx264 -preset fast -g 30 adel.mp4ffmpeg -i movie.mov -acodec aac -strict Experimental -ac 2 -ab 160k -vcodec libx264 -preset slow -f mp4 -crf 22 lamlam.mp4ffmpeg -i movie.mov -acodec aac -strict Experimental -ac 2 -ab 160k -vcodec libx264 -preset slow -profile:v 基线 -level 30 -maxrate 10000000 -bufsize 10000000 -f mp4 -threads 0 adiel.mp4

等等.所有这些命令再次生成一个有效的 mp4 文件,它可以在 chrome、safari 等上运行……并且即使我使用窗口媒体播放器在 Windows 本身中启动它们也可以正常工作.当我将此文件放在 IE9 中的视频标签中时(我使用的是 http://videojs.com/),它不起作用!

<video id="divVid" class="video-js vjs-default-skin vidoco-center" 控件 preload="none" width="600" height="400" poster="<?php echo(DOMAIN); ?>static/test.jpg"><source src="<?php echo(DOMAIN); ?>static/out.mp4" type="video/mp4"/></视频>

如果我使用软件 miro 视频转换器 将相同的 mov 文件转换为 mp4 - 它转换得很好,我可以在IE9!miro 转换器也在其中使用了 embedd ffmpeg,所以我确信它只是一米正确的 ffmpeg 命令和参数.在我的 apache htaccess 中,我为我的文件设置了正确的 mime 类型,并且在查看 IE 开发人员工具时我看到它确实正确:

AddType 音频/aac .aacAddType 音频/mp4 .mp4 .m4aAddType 音频/mpeg .mp1 .mp2 .mp3 .mpg .mpegAddType 音频/ogg .oga .oggAddType 音频/wav .wavAddType 音频/webm .webmAddType 视频/mp4 .mp4 .m4v添加类型视频/ogg .ogv添加类型视频/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

 

我找到了解决方案!这是我在 IE 9 和 Firefox 上测试过的带有工作演示的 ZIP!

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

另外,上面的演示有一个闪退,所以它应该适用于 IE8 及更低版本.

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

 

另外,在 videojs 网站上查看这个讨论: http://help.videojs.com/discussions/problems/1020-ffmpeg-command-produce-your-demonstration-video.

非常重要!请务必点击允许活动内容"按钮以允许视频在本地运行!

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

测试时使用的 HTML 代码:

<身体><video width="320" height="240" 控件><source src="movie.mp4" type="video/mp4"><source src="movie.ogg" type="video/ogg">您的浏览器不支持 video 标签.</视频>

我分析了 w3schools 提供的工作测试视频(它适用于 IE),我发现他们使用 HandBrake 对视频进行编码.

输入 #0, mov,mp4,m4a,3gp,3g2,mj2, from 'movie.mp4':元数据:主要品牌:mp42次要版本:0兼容品牌:mp42isomavc1创作时间:2010-05-11 10:32:06编码器:HandBrake 0.9.4 2009112300持续时间:00:00:12.61,开始:0.000000,比特率:202 kb/s第 0.0 章:开始 0.000000,结束 12.612000元数据:标题           :流 #0:0(und): 视频: h264 (Constrained Baseline) (avc1/0x31637661), yuv420p, 320x240, 80 kb/s, 29.65 fps, 29.97 tbr, 90k tbn, 59.元数据:创作时间:2010-05-11 10:32:06流 #0:1(und):音频:aac (mp4a/0x6134706D),48000 Hz,立体声,fltp,115 kb/s元数据:创作时间:2010-05-11 10:32:06流 #0:2(und): 副标题: mov_text (text/0x74786574)元数据:创建时间:2010-05-11 10:32:06`

I looked everywhere here and on google - there is no valid command that works for IE9. some how IE9 is missing something. All that I tried worked everywhere else: chrome,safari,mobile device etc... I want one command that will convert it and I can use it in every device suppose to support mp4 in HTML5 video tag.

I use this commands:

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

etc.. again all this commands produce a valid mp4 file which works on chrome,safari etc... and works even when I launch them in windows itself using window media player. When I put this file in the video tag (I am using http://videojs.com/) in IE9 it isn't working !

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

If I use the software miro video converter to convert the same mov file to mp4 - it converted fine and I can play it in IE9! miro converter is also using embedd ffmpeg inside it so I am sure it's only a metter of the right ffmpeg command and parameters. In my apache htaccess I set the correct mime types for my files and I see it indeed correct when looking in IE developer tools:

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

I am struggling with this for a long time so any help would be much appreciated.

Thanks!

解决方案

For ffmpeg:

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

You may also add the -q:v/-q:a parameter to specify the quality of the video. You may also use HandBrake which is a simpler encoder than ffmpeg.

For HandBrake:

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

 

EDIT: I found the solution! Here is a ZIP with a working demo that I tested on IE 9 and Firefox!

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

Also, the above demo has a flash fallback, so it should work on IE8 and less.

Same ffmpeg command used.
EDIT: I had to re-upload the video, since my hosting service is down for now. Now it is hosted on mediafire. I found they are the best file sharing service. Minimum ads, no registration, no 30 sec wait.

 

Also, check out this discussion on the videojs website: http://help.videojs.com/discussions/problems/1020-ffmpeg-command-produce-your-demonstration-video.

VERY IMPORTANT! Make sure to click the 'Allow Active Content' button to allow the video when running locally!

Video of the problem I have and my solution: See my demo mentioned above.

HTML code used while testing:

<!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>

I analyzed a working test video that w3schools provides (it works on IE), and I found out that they used HandBrake to encode the video.

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`

这篇关于ffmpeg 将 mov 文件转换为 mp4 用于 HTML5 视频标签 IE9的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆