Метод 2 показывает фактическую версию x509, в то время как метод 1 показывает версию x509, основанную на нуле, где 0 = v1, 1 = v2, 2 = v3. Таким образом, на практике они оба показывают, что используется версия 3. Вы можете попробовать это самостоятельно, используя openssl x509 -text -in YOURCERT.pem
, и вы получите что-то вроде
Certificate:
Data:
Version: 3 (0x2)
, и вы можете увидеть, что версия 3 дана, но также в скобках шестнадцатеричное значение (2), которое основано на нулевой версии. Вопрос в том, какие из ваших библиотек используют какой метод
Можно просмотреть исходный код ffmpeg (доступный через svn), или его документация API.
Чтение исходного кода от кодека, который работы кажутся правильным способом пойти. Я предлагаю следующее:
http://www.mpeg.org/MPEG/video/mssg-free-mpeg-software.html
Учитывая, что это упоминается на веб-сайте mpeg.org, я сказал бы, что Вы найдете то, в чем Вы нуждаетесь здесь.
В прошлом у меня было некоторое время для работы над декодированием mpeg видео (никакое аудио хотя), и принципы довольно просты. Существуют некоторые чистые включенные изображения, некоторые посреднические изображения, которые описаны относительно к самым близким основным, и остальные описаны с помощью самых близких основных/посреднических изображений.
Один временной интервал, одно изображение. Но недавние кодеки намного более сложны, я предполагаю!
РЕДАКТИРОВАНИЕ: синхронизация
Я не эксперт в синхронизации аудио и видео, но с проблемой, кажется, имеют дело с использованием синхронизирующего слоя (см. там для определения).
Для аудио/видео синхронизации, в основном, нужно добавить метку времени к каждому видео и аудио кадру. Метка времени обычно известна как PTS (Метка времени Презентации). После того как видео/аудио является декодером декодером, аудио/видео рендерер должен запланировать кадр, который будет отображен в нужное время так, чтобы аудио/видео синхронизировалось.
Я думаю, что можно обратиться к главе, "Синхронизирующей Модель" Учебного руководства MPEG2 для деталей.
В зависимости от того, сколько Вы знаете о формате MPEG-2, Вы могли бы хотеть получить широкий обзор путем чтения статьи об этом сначала. Я имею в виду что-то как они:
Patric и Nils
Таким образом, Вы говорите, что существуют метки времени, hein... Это для видео части, только я предполагаю. Для аудио я предполагаю, что существует достаточно информации в заголовке (как "образцы в секунду"). Как часто эти метки времени необходимы? Я предполагаю, что чередование аудио и видео пакетов гарантирует, что видеоданные всегда перед аудиоданными или чем-то?
Править: Найденный, в чем я нуждался: http://www.dranger.com/ffmpeg/tutorial01.html
Helltone,
Метки времени для аудиоданных все еще необходимы, потому что аудио и видеокадр не может быть выровненный в том же месте. Например:
V: 1000 1040 1080 1120... A: 990 1013 1036 (проиграл) 1082
Вы, возможно, должны компенсировать смещение между первым видео/аудио кадром. Кроме того, если возможно, что существует потеря пакетов (во время потоковой передачи видео), Вам нужны метки времени обоих видео/аудио для хранения точной синхронизации.