【问题标题】:Unable to play the video, could only hear it无法播放视频,只能听到
【发布时间】:2015-04-18 06:01:08
【问题描述】:

发生了一件有趣的事情!当我尝试播放如下视频时:

<div class='vcontainer' id='vc'> 
        <video id="match" width="700" controls>
              <source src='tsk1.mp4' type="video/mp4">
                Your browser does not support HTML5 video.
        </video>
</div>

我只能听到,没有视频。它的框架高度为576,框架宽度为720。但我可以播放另一个视频(通常),帧高为320,帧宽为568。这可能是什么原因?

注意:作为参考,我还有 uploaded the video file 导致问题

【问题讨论】:

  • 我确定您用于编码视频的编解码器不受支持。什么编解码器和平台?
  • @Brad 但它在我分享的链接上上传时播放。 (见编辑)
  • 当然,您将其上传到可能已对视频进行转码的服务。什么编解码器和平台?
  • @Brad 这是从电视调谐器软件录制的.mp4 文件。
  • MP4 是容器...什么是编解码器?

标签: html google-chrome video codec


【解决方案1】:

如评论中所述,您的视频可能使用了不受支持的编解码器。 说编解码器,不是容器格式(mp4)。

容器格式是一种将多个轨道(音频或视频)与一些额外信息(如元数据)组合到一个文件或流中的格式。

目前大多数浏览器都支持使用基线 H.264 作为图像编解码器和 arc/mp3 作为音频编解码器的 mp4 格式的视频。

检查您的视频编解码器是否为 H.264。您的浏览器可以播放声音证明您获得了正确的音频编解码器,但可能您使用了一些不受支持的视频编解码器。

即使您的视频是 H.264,您仍然可能会遇到问题。 AFAIK,Chrome 只支持 yuv420p 像素格式,而 safari 也可以支持 yuvj420p。 H.264的版本也可能会出问题,使用baseline会是一个不错的选择。

使视频正常工作的唯一方法是将其转码为与浏览器兼容的格式(大多数视频托管网站都会为您执行此操作)。您可以使用以下命令对FFmpeg 执行此操作。

ffmpeg -i &lt;Your video path here&gt; -c:v libx264 -c:a aac -strict -2 -pix_format yuv420p -profile:v baseline -preset:v fast &lt;Output video path here&gt;

【讨论】:

  • 有没有办法可以播放,就像我上传到的服务一样,可以播放视频
  • 我检查了视频的编解码器是mpeg4,chrome支持.mp4:support.google.com/chromebook/answer/183093?hl=en不应该正常播放视频吗?
  • @SuhailGupta,正如我之前所说,使用受支持的编解码器可能无法解决问题。使用的像素格式和许多其他东西也可能导致兼容性问题。首先,您应该使用可播放的视频网址(在您的问题的评论中有一个)来检查是否是您的 css 中的某些内容导致您的 video 不可见。如果视频仍然不可见,那么请尝试使用 FFmpeg。
  • @SuhailGupta,顺便说一句,您发布的图像被过度缩小,看不到任何东西。
  • 我搜索到 chrome 有一个视频错误(播放黑色图像的音频)并且最近才修复。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-10-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多