【发布时间】:2013-12-30 02:26:39
【问题描述】:
我正在尝试使用功能相当有限的解码器 (Broadway JS) 解码 h264 编码的视频帧。
这是我用于测试的过程:
- 使用来自 Cisco 的 OpenH264 使用 h264 编码单个图像(输出约为 62KB),写入磁盘
- 在 JS 中以二进制形式读取文件(通过 XHR 加载)
- 使用 Broadway 在 JS 中解码
- 在画布中显示
我实际上有一个功能示例,但目前在步骤 1 和步骤 2 之间有一个手动步骤 - 我必须调用 FFMPEG 来强制进行小翻译,但我不知道为什么。
我已经成功地将 Cisco 的 Openh264 库集成到我的项目中,并且可以将图像编码为 h264 并将其写入磁盘。我已经确认编码本身是有效的,方法是使用 FFMPEG 将帧提取为 JPEG(看起来很完美)。
但是,为了在 JS 中正确解码帧,我必须使用 FFMPEG 进行转换。它做了一些神奇的事情,文件大小下降到 ~ 58KB,瞧,一切都开始工作了。
Openh264 库仅适用于基线配置,所以我假设我有一些其他随机参数设置不正确。问题是,如果我使用 ffprobe 比较帧 - 设置是相同的!但是文件大小不同,所以显然 something 是不同的。
所以现在是最后一个问题 - 我可以使用什么工具来真正了解 FFMPEG 在幕后所做的工作,以使我的“手动”编码帧正常工作?有没有工具可以让我比较所有两个h264帧的细节?
【问题讨论】:
标签: javascript video encoding ffmpeg h.264