Статьи / Декодирование видео FFmpeg

Декодирование видео 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 подробнее.




При полном или частичном копировании необходимо указывать ссылку на данную статью.

Олег (Дата )

Все вопросы и предложения высылайте на адрес soft_support@list.ru. Необходимо в заголовке указать название статьи.

Оставь свой отзыв


Ответьте на вопрос (ответ маленькими буквами)* :
10-9?(ответ цифрами)

Dmitry

Дата: 15.03.11

e-mail: achuglazov@yandex.ru
Дата: 07.06.10