Как читать мультимедийные файлы с обычными функциями чтения файлов в C/C++?

У меня есть опыт работы только с обычными текстовыми / бинарными файлами. Теперь я хочу обрабатывать более продвинутые форматы файлов, такие как медиа-файлы (видео / аудио), без использования внешней библиотеки, такой как libav а также ffmpeg, Цель состоит в том, чтобы понять принципы обработки этих файлов.

Тем не менее, я не могу найти базовый учебник по изучению этого предмета в Интернете. Кто-нибудь знает некоторые полезные ресурсы? Кроме того, как я могу обработать это "сырой" из файла, такого как ".mp4", ".mp3"...

1 ответ

Решение

Это широкий вопрос. Что именно вы хотите сделать? У вас есть конкретная цель, которую вам нужно достичь (перевод одного формата в другой)? В этом случае используйте FFmpeg/Libav для транскодирования. Вам интересно узнать, как сделать это ради обучения? Это тоже круто. Читать дальше.

Похоже, вы уже имеете в виду аудио форматы. Одна из задач может заключаться в том, чтобы взять простой аудиоформат (например,.WAV или.AIFF), который закодирован простым аудиокодеком (например, вариация ADPCM), и обработать, если (т.е. открыть файл, разобрать заголовок, декодировать данные и, при необходимости, отправьте их на интерфейс аудиовыхода для воспроизведения).

MultimediaWiki - это бесплатный онлайн-ресурс для технической мультимедийной информации (раскрытие: я управляю сайтом). Он должен иметь некоторую информацию, чтобы помочь вам в этом. Дайте мне знать, если вы хотите углубиться в мультимедийные технологии.

ОБНОВЛЕНИЕ: Вот некоторые конкретные, аудио-ориентированные цели, которые вы можете попробовать: Посмотрите на некоторые файлы из этого каталога: http://samples.mplayerhq.hu/A-codecs/libsndfile-samples/ (я сгенерировал их несколько лет назад, вот информация о том, как я это сделал). Я рекомендую изучить следующие файлы: aif-ima-adpcm.aif, wav-ima-adpcm.wav и wav-ms-adpcm.wav. Выясните, как их анализировать, декодировать звук внутри и выводить их на аудиоустройство на вашем компьютере. Некоторые ресурсы, которые помогут вам начать работу:

Удачи! И не стесняйтесь задавать больше вопросов (хотя они, вероятно, должны быть отдельными SO вопросами, чтобы эта запись не была слишком громоздкой).

Другие вопросы по тегам