您的问题“为什么不是所有 mp4 视频都可以在 chrome 浏览器中播放或播放?”的答案? - 即为什么一个 mp4 视频可以工作而另一个不能工作,这与 MP4 本身有关。
MP4 是一种容器规范 - 它提供了一种机制,以单一“包装器”或容器格式包含视频、音频和数据流。
它可以在 MP4 容器中支持许多不同的音频和视频格式,这就是您所看到的行为的原因。您的浏览器和设备通常会有一组它可以支持的视频和音频编码,如果 MP4 容器的流正在使用这些,它将能够播放视频。否则将无法播放视频。
请注意,即使您知道视频编码格式、h.264、h.265、vp9 等编解码器,对于给定的编解码器,仍可能存在功能或配置文件的子集,这些功能或配置文件受支持和不受支持.
您可以在许多地方查看有关不同支持类型的更多详细信息和信息,但来自 Mozilla 的此链接是查看最新数据的好地方:https://developer.mozilla.org/en-US/docs/Web/Media/Formats/Video_codecs
正如您问题的 cmets 中所述,您可以使用 ffprobe:https://ffmpeg.org/ffprobe.html 等工具查看视频的编码方式。示例输出可能类似于以下示例。这告诉您视频流“0”正在使用 H.264 编解码器的“主”配置文件,例如:
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '/bbb_PCM_48_16.mp4':
Metadata:
major_brand : qt
minor_version : 0
compatible_brands: qt
creation_time : 2019-09-19T20:37:29.000000Z
timecode : 00:00:00:00
Duration: 00:00:48.00, start: 0.000000, bitrate: 5042 kb/s
Stream #0:0(eng): Video: h264 (Main) (avc1 / 0x31637661), yuv420p(tv, bt709), 853x480, 3503 kb/s, 24 fps, 24 tbr, 600 tbn, 1200 tbc (default)
Metadata:
creation_time : 2019-09-19T20:37:29.000000Z
handler_name : Core Media Video
encoder : H.264
Stream #0:1(eng): Data: none (tmcd / 0x64636D74) (default)
Metadata:
creation_time : 2019-09-19T20:37:29.000000Z
handler_name : Core Media Time Code
timecode : 00:00:00:00
Stream #0:2(und): Audio: pcm_s16be (lpcm / 0x6D63706C), 48000 Hz, stereo, s16, 1536 kb/s (default)
Metadata:
creation_time : 2019-09-19T20:37:29.000000Z
handler_name : Core Media Audio