【发布时间】:2012-11-30 03:54:03
【问题描述】:
我正在尝试使用Xuggler(我相信在后台使用ffmpeg)来执行以下操作:
- 接受原始 MPJPEG 视频比特流(来自小型 TTL 串行相机)并将其编码/转码为 h.264;和
- 接受原始音频比特流(来自麦克风)并将其编码为 AAC;那么
- 将两个(音频和视频)比特流混合到一个 MPEG-TS 容器中
我已经看过/阅读了他们的一些优秀教程,到目前为止,这就是我所掌握的:
// I'll worry about implementing this functionality later, but
// involves querying native device drivers.
byte[] nextMjpeg = getNextMjpegFromSerialPort();
// I'll also worry about implementing this functionality as well;
// I'm simply providing these for thoroughness.
BufferedImage mjpeg = MjpegFactory.newMjpeg(nextMjpeg);
// Specify a h.264 video stream (how?)
String h264Stream = "???";
IMediaWriter writer = ToolFactory.makeWriter(h264Stream);
writer.addVideoStream(0, 0, ICodec.ID.CODEC_ID_H264);
writer.encodeVideo(0, mjpeg);
一方面,我想我已经接近了,但它仍然不正确;而且我只是通过阅读视频代码示例(不是音频 - 我找不到任何好的音频示例)才走到这一步。
从字面上看,我将对进入我的 Xuggler 实现的原始视频和音频提要进行字节级访问。但是对于我的生活,我无法弄清楚如何将它们变成 h.264/AAC/MPEG-TS 格式。在此先感谢您的帮助。
【问题讨论】:
-
我也应该在赏金文本中提到我没有与 Xuggler“结婚”。如果有人能弄清楚如何使用
ffmpeg或其他可以在 Linux 上运行的工具来完成我需要的一切(在赏金中指定),我也会对该解决方案感兴趣! -
你可以通过USB连接相机吗?你知道 xuggle 是否可以通过 SPI 读取相机的输入
-
在 USB 和 SPI 上是的,但出于此问题范围之外的原因,我不会使用该选项。唯一真正重要的是,我将以
byte[]s 的形式获取原始音频和视频比特流。
标签: java ffmpeg streaming h.264 xuggler