Декодирование видео FFmpeg
Декодирование видео с помощью FFmpeg
Шаг 4: Декодирование информации
Декодирование информации состоит в считывании пакетов данных определения, к какому потоку принадлежит пакет, декодированию пакета. Звуковые и видео потоки декодируются различными функциями. Для определения времени кадра или звука, необходимо рассказать о формате времени.
Время ffmpeg представлено во внутренних единицах, так называемый BaseTime. Для преобразования времени в секунды необходимо время ffmepg-а умножить на BaseTime. Соответственно, для преобразования времени в секундах во время ffmpeg, необходимо разделить на BaseTime. Для каждого потока BaseTime индивидуально.
Для чтения пакета используется функция:
если функция вернула значение меньше нуля, то кадр не мог быть прочитан, скорее всего, конец файла.
Принадлежит ли пакет к видеопотоку можно узнать следующим образом:
где videoStreamIndex индекс видеопотока.
Декодирование кадра:
если декодирование удачно завершилось, то значение переменной videoFrameComplete, должно быть больше нуля и функция должна вернуть значение больше нуля. Если же возвращаемое значения больше нуля, а videoFrameComplete меньше нуля или ноль, то это значит, что ошибки нет, но декодировать кадр не удалось.
Для декодирования звука используется функция:
Оцифрованный звук представляет собой точки дискретизации. Их формат можно узнать из структуры информации о звуковом потоке.
Шаг 5: Преобразование кадров
Видеокадры могут иметь разные форматы: RGB, YUV, YUVP. Чаще всего это YUV формат. Скорее всего, кадры буду обрабатываться в формате RGB, и необходимо преобразовать кадры в RGB формат. Для этого можно использовать библиотеку swscale, она входит в состав FFmpeg. Ниже приведён пример использования:
Шаг 6: Закрытие файла
При закрытии файла высвобождаются ресурсы. Ниже приведён код закрытия файла и высвобождение ресурсов:
Заключение
Из статьи вы могли узнать, как использовать FFmpeg. Стоит отметит, что FFmpeg поддерживает большое количество форматов и кодеков.
Пример
Да, без примера статья была бы не закончена. Вы можете скачать пример использования ffmpeg. Пример не имеет полную функциональность, а только демонстрирует основы работы с FFmpeg. Программа открывает файл и сохраняет на диск 50 первых кадров. Вы можете её настроить, изменив define-ы:
Ссылки
http://ffmpeg.org/ - официальный сайт проекта FFmpeg.
http://en.wikipedia.org/wiki/FFmpeg - о FFmpeg на Википедии.
http://ffmpeg.arrozcru.org/ - проект FFmpeg для Windows.
http://dranger.com/ffmpeg/ - видеоплеер на 1000 строк. Об использовании FFmpeg подробнее.
Страницы: назад [1] [2]
При полном или частичном копировании необходимо указывать ссылку на данную статью.
Олег (Дата )
Все вопросы и предложения высылайте на адрес soft_support@list.ru. Необходимо в заголовке указать название статьи.
Оставь свой отзыв
Dmitry Дата: 15.03.11 |
e-mail: achuglazov@yandex.ru Дата: 07.06.10 |