Я пытаюсь использовать 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. Заранее спасибо за любую помощь здесь.