【问题标题】:VLC: How to convert from mp4 to webmVLC:如何从 mp4 转换为 webm
【发布时间】:2012-03-23 20:36:09
【问题描述】:

如果可能,如何使用 VLC 从 mp4 转换为 webm?我应该选择什么编解码器?我需要重新编码声音吗?

我正在尝试将 html5 视频放在使用 flash 作为后备的网站上。据我了解,这是 Firefox 允许的唯一格式(webm)(除非您使用的是 Windows 7 64 位?)。 Theora 似乎可以工作,但据我了解它有点旧,而且它需要一段时间才能正确渲染图片并且不提供缩略图:(

<video controls width="500">  
    <!-- if Firefox -->  
    <source src="video/45-theora.ogg" type="video/ogg" />
    <!-- if Safari/Chrome-->  
    <source src="video/45.mp4" type="video/mp4" />
</video>

哦,我使用的是 Mac OS Lion,但我可以访问 Windows 7、Vista 和 XP,如果它能让某人更轻松的话。

感谢您的帮助!

【问题讨论】:

  • ffmpeg -i 45.mp4 45.webm

标签: html5-video vlc codec video-codecs


【解决方案1】:

只是为了更新这个答案,我不建议再使用 Miro Video Converter。它曾经是我为网络创建 HTML5 视频的首选武器,但该程序的当前版本 3 在转换为 ogg theora 时存在问题:转换后的视频质量太低,无法创建更高质量的版本使用 ffmpeg 命令行实用程序。

Easyhtml5video 非常棒,因为它会自动创建所有带有 Flash 回退和嵌入代码的视频格式,但您必须为此支付 69 美元 - 免费版本会为视频添加水印。

目前我正在使用 VLC 播放器进行视频转换。要在 VLC 中转换 mp4 文件,我执行以下操作:

转换为 .webm

  1. 从菜单中选择媒体 > 转换/保存。
  2. 单击“添加”按钮并选择要转换的文件
  3. 点击“转换/保存”按钮
  4. 在“个人资料”下拉菜单中选择“视频 - VP80 + Vorbis (Webm)”
  5. 单击下拉菜单旁边的按钮(“编辑所选配置文件” - 看起来像扳手+螺丝刀图标)
  6. 封装选项卡应设置为 Webm。
  7. 单击“视频编解码器”选项卡。在编码参数中,编解码器应选择为'VP8'。
  8. 在“音频编解码器”选项卡中,应取消选择“保留原始音轨”。编解码器应设置为“Vorbis”
  9. 点击“保存”
  10. 重要:选择目标文件位置和名称。单击浏览器,转到您希望转换后的文件名进入的文件夹,然后输入新的文件名。如果您不这样做,VLC 将不会创建您转换后的文件(无论如何都不会在 2.1.5 版本中)
  11. 点击“开始”开始转换。

转换为 .ogv:

  1. 从菜单中选择媒体 > 转换/保存。
  2. 单击“添加”按钮并选择要转换的文件
  3. 点击“转换/保存”按钮
  4. 在“个人资料”下拉菜单中选择“视频 - Theora + Vorbis (OGG)”
  5. 点击下拉菜单旁边的按钮(“编辑所选配置文件”)
  6. 封装选项卡应设置为 Ogg/Ogm。
  7. 单击“视频编解码器”选项卡。在编码参数中,编解码器应选择为“theora”,如果您有文本,则比特率应为 1000kb/s。较低的比特率可能适合较小的视频。
  8. 在“音频编解码器”选项卡中,选择“保留原始音轨”
  9. 点击“保存”
  10. 选择目标文件位置和名称。
  11. 点击“开始”开始转换。

如果您需要调整视频大小或裁剪视频,我建议您首先使用 Handbrake 对 .mp4 文件执行此操作。根据我的经验,尝试使用 VLC 创建 .ogg/ogv 或 webm 文件的大小调整版本不会给您带来很好的结果。

将视频放到网页上时,我使用VideoJs - 这使您可以非常轻松地为旧版浏览器创建带有 Flash 后备的 html5 视频。比 easyhtml5video 稍微多一点工作,但它可以免费使用。

【讨论】:

    【解决方案2】:

    WebM 只是 Matroska (.mkv) 的一个子集,因此只需使用 HandBrake 创建一个 MKV 文件(选择 MKV 容器,而不是 MP4)。恕我直言,HandBrake 是在 Mac 上创建 MP4 和 MKV 文件的最佳工具(也适用于 Windows 和 Linux,但我从未在那里使用过)。使用两遍编码,您可以获得可用存储空间和/或带宽的最佳质量,并且虽然功能非常强大(您可以配置很多设置),HandBrake 仍然是一个非常简单的工具(您不需要配置大部分设置,已经默认值会给你很好的结果)。

    请记住,WebM 是 MKV 子集,因此作为视频编解码器使用 VP8 或 VP9,作为音频编解码器使用 Vorbis 或 Opus。到 2013 年为止,只有 VP8 和 Vorbis 用于 WebM,所以这是可以在大多数设备、浏览器和播放器上播放的最兼容的组合。 2013 年添加了更新的 VP9 和 Opus,现在它们的任何组合都是合法的。

    获得 MKV 后,使用 ffmpeg 将其转换为 WebM。您可以将ffmpg pre-built for MacOS X 作为独立二进制文件下载(适用于 10.9 或更高版本)。您需要做的就是在终端中运行该命令:

    ./ffmpeg -i INPUTIFLE.mkv -c copy OUTPUTFILE.webm
    

    就是这样。这将非常快,因为-c copy 意味着 ffmpeg 没有在此处转换任何内容(视频没有再次转码!),它正在复制所有音频和视频数据,只复制容器被重写,删除了 WebM 不支持的 MKV 部分(例如不支持章节)。只是复制也意味着这种转换对质量的影响为零,因为没有重新压缩。

    使用ffmpeg 在不重新压缩的容器之间进行转换也适用于许多其他格式。例如。如果您有一个实际上是 MPEG4 或 H.264 的 MKV,您可以以相同的方式将其转换为 MP4 文件,无需重新编码。您甚至可以仅将视频的音频层提取为纯音频文件,而不会损失任何质量(例如,将 MP3 或 AAC 音频提取为 MP3 或 MPA 文件)。如果选择的目标容器无法保存源文件的数据(例如,您无法将 AAC 音频复制到 MP3 文件或 VP9 视频复制到 MP4 文件,这将无法正常工作),ffmpeg 会通知您。

    【讨论】:

      【解决方案3】:

      我会将该代码更改为:

      <video poster="/path/to/your/thumbnail/image.jpg" preload="meta" controls width="500"> 
          <!-- if Safari/Chrome-->  
          <source src="video/45.mp4" type="video/mp4" /> 
          <!-- if Firefox -->  
          <source src="video/45-theora.ogg" type="video/ogg" />
      </video>
      

      原因:

      poster="/path/to/your/thumbnail/image.jpg"
      

      因为您希望在用户播放视频之前显示“缩略图”

      <source src="video/45.mp4" type="video/mp4" /> BEFORE <source src="video/45-theora.ogg" type="video/ogg" />
      

      mp4 在开放格式(如 webm 或 therora)之前,因为在某些 iOS 版本中存在一个错误,如果 mp4 在 html 中的任何其他格式之后列出,则根本不会播放视频(所以首先列出它)。

      preload="meta"
      

      因为如果同一页面上同时有许多视频,某些版本的 iOS 甚至某些版本的 Safari 和 Chrome 都很难加载页面。 preload=none 或 preload=meta 有助于解决这些问题。

      在编码方面,Miro Converter 更擅长编码,并且更容易用于转换浏览器可以播放的格式(mp4、webm、theroa)。 VLC 有很多选择,但如果你没有做对,可能会让人不知所措和沮丧。 Miro 更像是一个拖放应用程序,受到diveintohtml5 的推荐。

      【讨论】:

        【解决方案4】:

        如果您使用的是 ffmpeg,我发现此命令可以很好地兼顾文件大小和质量:

        ffmpeg -i myvideo.mp4 -acodec libvorbis -aq 5 -ac 2 -qmax 25 -threads 2 myvideo.webm
        

        您可以分别使用-aq-qmax 控制音频和视频的质量。如果您有兴趣,我写了一篇博文,其中包含更多详细信息:http://daniemon.com/blog/how-to-convert-videos-to-webm-with-ffmpeg/

        -threads 参数可能会被调整或完全省略,具体取决于您要为编码任务提交多少系统资源。

        【讨论】:

          【解决方案5】:
          ffmpeg -i 45.mp4 45.webm
          

          【讨论】:

          • 或者如果你在 Ubuntu avconv -i 45.mp4 45.webm 上——虽然我在某处读过质量与 ffmpeg 不一样,不确定,但值得一试。
          【解决方案6】:

          试试这个:: Linux中的Libav

          Installation: run command  
                         sudo apt-get install libav-tools 
          
          Video conversion command::Go to folder contains the video and run in terminal
                         avconv -i oldvideo.mp4 -ar 22050 convertedvideo.webm
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2019-04-15
            • 2018-03-19
            • 2018-06-09
            • 2015-03-03
            • 1970-01-01
            • 2017-09-22
            • 2013-01-04
            • 1970-01-01
            相关资源
            最近更新 更多