SO...
У меня есть видеоданные RAW H.264, снятые через RTSP в локальном файле, и я пытаюсь воспроизвести видео в приложении Java FX. Для этого мне нужно использовать Http Live Streaming.
Я успешно создал прототип архитектуры Java FX, которая может воспроизводить видео через HLS на локальном сервере, используя локальную папку, содержащую файл .m3u8 (индекс HLS) и набор файлов .ts (MPEG-TS). Последняя часть для меня — заменить файлы .ts файлами .264/.h264 и на локальном сервере выполнить конвертацию/обёртку данных H.264 Annex B в MPEG-TS.
У меня возникли проблемы с определением того, что требуется для преобразования H.264 Annex B в MPEG-TS. Я нашел следующую информацию...
«Приложение B обычно используется в живых и потоковых форматах, таких как транспортные потоки ...»
szatmary.org/блог/25
«Приложение B документа определяет один такой формат, который упаковывает блоки NAL в формат, напоминающий традиционный элементарный видеопоток MPEG, что делает его пригодным для использования с такими контейнерами, как MPEG PS/TS, неспособными обеспечить требуемое кадрирование…»
wiki.multimedia.cx/?title=H.264
«Java FX поддерживает ряд различных типов мультимедиа. Типом мультимедиа считается комбинация формата контейнера и одной или нескольких кодировок. В некоторых случаях формат контейнера может быть просто элементарным потоком, содержащим закодированные данные».
docs.oracle.com/javafx/2/api/javafx/scene/media/package-summary.html
"Используйте атрибут CODECS тега EXT-X-STREAM-INF. Если этот атрибут присутствует, он должен включать все кодеки и профили, необходимые для воспроизведения потока..."
developer.apple.com/library/ios/documentation/networkinginternet/conceptual/streamingmediaguide/FrequentlyAskedQuestions/FrequentlyAskedQuestions.html
Кажется, мне не хватает чего-то простого в Elementary и Transport Streams. Я использовал ffmpeg для преобразования моего файла H.264 в файл TS и попытался понять различия. У меня есть представление о примерных различиях форматов, но мне все еще не хватает деталей, чтобы это сделать. У кого-нибудь есть ссылка, демонстрирующая это, или кто-нибудь знает что-то простое о том, как обслуживать данные Приложения B H.264 через MPEG-TS?
Я не собираюсь использовать какой-либо инструмент, мне нужен пользовательский формат файла локально, где я анализирую данные Приложения B H.264 и выполняю изменение формата в памяти на лету. Я знаю способ использовать ffmpeg с каналами для достижения этой цели, но я не хочу иметь никаких зависимостей, а производительность важна.