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

Adi*_*idi 48 video ffmpeg codec html5-video internet-explorer-9

我在这里和谷歌到处都是 - 没有适用于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
Run Code Online (Sandbox Code Playgroud)

等等..再次所有这些命令产生一个有效的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>
Run Code Online (Sandbox Code Playgroud)

如果我使用软件miro视频转换器将相同的mov文件转换为mp4 - 它转换得很好,我可以在IE9中播放它!miro转换器也在其中使用embedd ffmpeg,所以我确信它只是一个正确的ffmpeg命令和参数的metter.在我的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
Run Code Online (Sandbox Code Playgroud)

我很长时间都在努力,所以任何帮助都会非常感激.

谢谢!

MDT*_*MAN 91

用于ffmpeg:

ffmpeg -i {input}.mov -vcodec h264 -acodec aac -strict -2 {output}.mp4
Run Code Online (Sandbox Code Playgroud)

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

用于HandBrake:

handbrakecli -i {input}.mov -e x264 -E facc -o {output}.mp4
Run Code Online (Sandbox Code Playgroud)

 

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

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代码:

<!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>
Run Code Online (Sandbox Code Playgroud)

我分析了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`
Run Code Online (Sandbox Code Playgroud)


7-i*_*bad 11

ffmpeg的主要旅程


下载最新的ffmpeg及其预设 http://www.ffmpeg.org/download.html

按照说明在Windows中安装Ffmpeg Binary


说明:

  1. 从arrozcru autobuilds页面获取最新版本
  2. 将文件夹解压缩到C:/ Program Files/ffmpeg
  3. 将C:/ Program Files/ffmpeg/bin添加到系统的PATH环境变量中

可选的libx264预设设置:

如果使用libx264预设(使用-vpre标志),则需要执行以下设置.

  1. 为指向主目录的用户创建HOME环境变量.(例如,对于Vista/7/8 C:/ Users/moose或对于XP C:/ Documents and Settings/moose)
  2. 在主目录中创建.ffmpeg文件夹
  3. 将预设文件从C:/ Program Files/ffmpeg/share/*.ffpreset复制到%HOME%/.ffmpeg
  4. 现在您可以打开命令提示符并使用ffmpeg.:D(例如,这是我的Vimeo视频转换命令.fffeg -i input.mov -vcodec libx264 -vpre hq -crf 24 -g 25 -acodec libmp3lame -ab 192k -ar 44100 output.mp4)
    *注意:不包括libfaac在构建中,因为libfaac被认为是非自由插件

请记住在Windows中设置HOME环境变量

  1. 复制环境变量文件夹下的预设
  2. 您需要使用以下命令来使用ffmpeg进行转换:

对于mp4(H.264/ACC):

ffmpeg -i INPUTFILE -b 1500k -vcodec libx264 -vpre slow -vpre baseline -g 30 "OUTPUTFILE.mp4"
Run Code Online (Sandbox Code Playgroud)

对于webm(VP8/Vorbis):

ffmpeg -i "INPUTFILE"  -b 1500k -vcodec libvpx -acodec libvorbis -ab 160000 -f webm -g 30 "OUTPUTFILE.webm"
Run Code Online (Sandbox Code Playgroud)

对于ogv(Theora/Vorbis):

ffmpeg -i "INPUTFILE" -b 1500k -vcodec libtheora -acodec libvorbis -ab 160000 -g 30 "OUTPUTFILE.ogv"
Run Code Online (Sandbox Code Playgroud)