MP4和MKV的区别

@Ta 2022-05-03发布,2022-05-03修改 721点击
MP4和MKV都是视频封装格式,MKV是开源的封装格式,
同样是封装,微信、QQ及老虎林,MKV不能直接播放,
MP4封装兼容性更好,或者说常用软件都当作视频显示,
MKV待遇就不一样了,MKV好多地方直接当作文件下载。
回复列表(27|隐藏机器人聊天)
  • @Ta / 2022-05-03 / /
    @老虎会游泳 ,我记得你不是说过,无所谓,h.256 才重要吗
  • @Ta / 2022-05-03 / /
    iPhone13 PRO MAX 1T 国行远峰蓝 非海南免税版
  • @Ta / 2022-05-04 / /

    @爱特,因为浏览器确实不支持MKV封装啊

    视频链接

    图片.png

  • @Ta / 2022-05-04 / /

    @胡椒舰长,h.265是视频数据的格式,视频数据要和音频数据交织在一起,保存在一个文件里,才能拿来发给别人。单独的视频和音频裸数据流确实也可以逐字节保存成文件,但是视频和音频就只能分开保存了,用起来不方便。所以网上流传的一般都是封装好的视频文件。

    mp4(实际名称是“ISO Base Media File Format”,ISO基础媒体文件格式,ISO 14496-12)就是这样一种可以封装视频和音频流的文件格式。

    mkv(Matroska)是另一种封装文件格式。

    两者都可以封装h.265,并且可以是完全相同的h.265流。用ffmpeg命令的-codec copy指令就能实现转封装:

    ffmpeg -i my.mp4 -codec copy my.mkv
    ffmpeg -i my.mkv -codec copy my2.mp4
    

    但是,如果某个程序不支持某种封装格式,就没办法把视频和音频流从封装中提取出来,就算里面封装的是它支持的H.264,它也无法播放。


    Mozilla 维护了一个详尽的音视频编解码器和容器文件格式文档:
    https://developer.mozilla.org/zh-CN/docs/Web/Media/Formats/Video_codecs

    图片.png

  • @Ta / 2022-05-03 / /

    所以,浏览器要实现mkv播放,就必须加载一个解封装用的js(浏览器必须支持媒体源扩展,否则也没用)。flv有这样的js(B站开发的flv.js),所以现在可以在虎绿林播放。

  • @Ta / 2022-05-03 / /
    @老虎会游泳,YouTube的在线视频IDM下载下来就是MKV格式的。
  • @Ta / 2022-05-03 / /

    @爱特@胡椒舰长,这里说webm格式是MKV格式的子集,所有有可能可以通过把MIME类型设为video/webm来实现播放。我试试。

    https://github.com/videojs/video.js/issues/5910

  • @Ta / 2022-05-03 / /

    @爱特,因为webm格式是MKV格式的子集,所以你下载下来的格式应该是webm,当然从逻辑上来说它也是mkv,但是两者的MIME类型不同,浏览器只识别video/webm

  • @Ta / 2022-05-03 / /
    @老虎会游泳,YouTube的在线播放器是支持MKV视频的。
    xiaoqidun_2022-05-03_23-33-49.png
  • @Ta / 2022-05-03 / /
    MKV没几个浏览器能直接解析吧
    我是晨曦,我喂自己袋盐!
  • @Ta / 2022-05-03 / /

    @爱特,把你的视频扩展名修改为.webm重新上传,确实可以播放。我会修改上传代码,把webm视为视频流,并且给mkv自动添加扩展名.webm。
    @胡椒舰长

  • @Ta / 2022-05-03 / /

    @爱特,你看看Youtube的HTTP请求,视频文件的Content-Type应该是video/webm

  • @Ta / 2022-05-04 / /

    同一个视频文件
    content-type: video/x-matroska,不能播放
    content-type: video/webm,可以播放

    有什么区别?
    webm一定是mkv,mkv不一定是webm,使用了没有包含进webm标准里的功能和视频音频编码,就不是webm。

    所以,浏览器应该能够播放使用H.264/VP8/VP9/AV1视频编码、WAV/MP3/AAC/Ogg Vorbis音频编码的MKV,只要假装它是webm即可。
    但是,这种假装必须在服务器端完成,因为要设置MIME类型为video/webm
    鉴于阿里云OSS根据文件扩展名自动选择MIME类型,所以最简单的兼容方案是上传时在原始文件名后面附加扩展名.webm。

  • @Ta / 2022-05-03 / /
    @老虎会游泳,YouTube出现2个头:audio/webm、video/webm,看上去就是WebM。
  • @Ta / 2022-05-04 / /

    @爱特@胡椒舰长,图文快贴和附件上传已经支持webm和mkv在线播放,mkv会被伪装成webm。

    视频链接

    视频链接

  • @Ta / 2022-05-04 / /
    还有个很少见的RMVB格式
  • @Ta / 2022-05-04 / /
    @老虎会游泳,播放器控件绝对有问题,我拖动不了,要么直接拖到最后一秒。
    正在检查更新
    版本 100.0.4896.127(正式版本) (arm64)
  • @Ta / 2022-05-04 / /

    @胡椒舰长,虎绿林没有重载播放器控件,所以播放器控件是你的浏览器自己提供的。

添加新回复
回复需要登录