每当我使用 h.264 编解码器将视频转换为 mp4 时,它都不会立即在 Windows 或 iPad 上播放。当我使用mp4盒。我使用下面的命令来转换。
mp4box -hint video.mp4
我想知道用 mp4box 向视频添加了什么内容。
它是如何工作的?
答案1
请注意,它mp4box
不会对任何视频进行编码,它仅用于重新打包现有内容。所以我的猜测是你已经有一个编码的视频,然后用它mp4box
来添加hint
选项。虽然这个工作流程一开始对我来说真的没有意义,但让我解释一下它的hint
含义:
该-hint
选项可能是为了引入所谓的提示轨迹到视频文件。
什么是提示轨道?嗯,你的视频文件本身就是一系列的位,仅此而已,在某些应用中,这是非常低效的。以流式传输视频的服务器为例。它必须将视频封装成通过网络发送的数据包。但服务器如何知道将视频的哪些部分放入哪个数据包中?如果服务器不知道结构比特流,则无法正确对其进行打包。
提示轨道就是在这里发挥作用的。生成提示轨道是为了允许流媒体服务器正确地将视频打包成 RTP 数据包。基本上,这样的提示轨道表示“将部分XY数据包中的视频AB“。
尽管如此,真正的 H.264 不需要有用于流式传输的提示轨道,因为 H.264 有一个网络抽象层,它为流式传输服务器提供了对视频进行分组所需的所有信息。提示仅对 MPEG-4 Visual 视频(例如使用 DivX 或 XviD 编码的视频)才是必要的。
检查你的编码器是否已经输出有效mp4
文件——你实际使用哪一个?
答案2
您使用什么程序来创建/编码 h264 视频?编码器可能正在输出原始 h264 文件,此原始流通常需要与音频流一起放入容器格式(例如 mkv 或 mp4)中,然后才能播放。
检查您的 h264 编码器,看它是否会自动将编码的视频放入 mp4 容器中,或者是否具有适合您设备的特定配置文件/设置。如果可以,但仍然无法播放,则可能只是一个错误,在这种情况下,您必须坚持手动使用 mp4box。