Я пытаюсь отобразить кадры из файла mkv h264 в silverlight 3 с помощью MediaStreamSource. Анализ файла mkv в порядке, но я боюсь с ожидаемыми значениями для CodecPrivateData в SL, который должен быть строкой, в то время как информация PrivateData из mkv является двоичным элементом. Кроме того, я не уверен, в какой форме кадры должны быть отнесены к SL (то есть, как они хранятся в mkv/mp4 или перекодированы как NALU) У кого-нибудь есть информация об этом?Как использовать MediaStreamSource для воспроизведения кадров h264, исходящих из файла matroska?
ответ
CodecPrivateData - это содержимое атома 'avcC', который является дочерним элементом атома stsd в файле MP4. Вы должны преобразовать двоичные данные в строку. Он будет выглядеть примерно так: «014D401FFFE10017674D401F925402802DD0800000030080000018478C195001000468EE32C8»
Вы также должны заменить длину mkv/mp4 на NALU. Я написал немного об этом (чтобы Smooth Streaming работал на файлы H.264).
С уважением,
После подобных проблем моей и много головной царапать, я могу ответить на этот вопрос.
В ReportOpenMediaCompleted(), при настройке описания видеопотока, вы можете игнорировать атрибут строку CodecPrivateData, несмотря на то, что сказано в документации. Это не требуется. (если ваш поток блоков NAL включает в себя блоки SPS и PPS)
Вы должны отправить один блок NAL обратно в MediaElement для каждого запроса GetSampleAsync(). Это включает в себя устройства NAL без изображения, например. SPS/PPS.
Когда вы отправляете свои блоки NAL, убедитесь, что в начале каждого из них есть стартовые коды с 3 байтами (0x00 0x00 0x01). (Это похоже на формат «Приложение B», но не совсем то же самое)
В ReportGetSampleCompleted() установите значение «Смещение», равное началу начального кода NAL, а не фактические данные. (В большинстве случаев это будет равно нулю, если вы используете свежий поток на единицу NAL)
У меня есть blogged a little about the experience here и надеемся на блог больше.
Согласно документации, личные данные Codec должны быть установлены в 00000001 + sps + 00000001 + pps. Однако документация неверна Значение CodecPrivateData, кажется, полностью игнорируется. Вместо этого вам необходимо передать SPS и PPS NALS (с заголовком приложения b, конечно) в качестве первого и второго результата GetSampleAsync
.
Для обычных образцов среды нормальный 4 байта приложение b заголовки заголовков работают нормально
- 1. Контент с открытым исходным кодом Matroska container Silverlight MediaStreamSource Parser?
- 2. Декодирование кадров H264 C#
- 3. форсирование VLC для воспроизведения видеофайла h264
- 4. Декодирование h264 кадров из потока RTP
- 5. Android MediaCodec появляется для хранения кадров H264
- 6. Отправка кадров H264 по HTTP
- 7. Как сделать декодирование необработанных кадров H264
- 8. FFmpeg выпуск частота кадров h264 + задница мкВ
- 9. вычисление кодированной частоты кадров в H264
- 10. Декодирование кадров H264 в байтовый массив
- 11. Измерение частоты кадров для воспроизведения видео
- 12. Использование видеодрайвера DTV-DVD для воспроизведения видео H264
- 13. Как вы получаете точную продолжительность данного потока h264 (Silverlight)?
- 14. Декодирование звука с использованием MediaStreamSource
- 15. Как использовать SampleGrabber с Matroska Muxer в DirectShow?
- 16. Получение кадров из SurfaceView и декодирования в H264 с mediacodec
- 17. Анализ файла Matroska (webm), потоковая передача по произвольному доступу
- 18. Как использовать MediaCodec без MediaExtractor для H264
- 19. Кодировать несколько кадров с MediaTranscoder
- 20. Как использовать FileReference для воспроизведения звука?
- 21. Как использовать AVAudioPlayer для воспроизведения M4P
- 22. Как использовать эмулятор для тестирования медиаплеера и воспроизведения звукового файла?
- 23. Как использовать MIDISend для воспроизведения MIDI-файла на подключенном синтезаторе?
- 24. Библиотека для игры в Matroska (.MKV) во Flash?
- 25. BackgroundAudioPlayer-Buffering & MediaStreamSource
- 26. Можно извлечь необработанный кадр из файла h264?
- 27. CCAnimation, как установить частоту кадров для отдельных кадров
- 28. Как использовать MediaSessianCompat для воспроизведения мультимедиа?
- 29. MediaStreamSource для AAC в Windows Phone 7
- 30. Отрегулируйте частоту кадров AVPlayer во время воспроизведения