Видеорегистратор с форматом avi
Продолжаем давать ценные советы и рекомендации по выбору автомобильного видеорегистратора. На этот раз мы рассмотрим сложности, которые могут возникать при воспроизведении видео с регистратора, поговорим о картах памяти, форматах записи и проигрывателях.
В первых двух статьях о том, какой видеорегистратор лучше, мы говорили о качестве и настройках видео, а теперь разберемся с вопросом просмотра сделанных записей.
В правильном формате
Почти все авторегистраторы. представленные сегодня на рынке, сохраняют записанные треки в файлах форматов AVI либо MOV (ну или если кому понятнее — с расширением .avi или .mov). Выбрать формат нельзя — его вид жестко задан на уровне «железа» и в прошивке устройства. Впрочем, этого никогда и не требуется — штатный медиаплеер Windows без проблем воспроизводит файлы как AVI, так и MOV.
Но, по нашим данным, все видеорегистраторы, пишущие в формат MOV, выдавали лучшее качество картинки, нежели те, которые писали в AVI. Вообще, на сегодня, формат AVI становится особенностью «бюджетных» регистраторов, пишущих в HD (1280 на 720 точек, 720 р).
Кроме того, по нашим данным, размер файла в формате AVI, примерно вдвое больше, чем в MOV.(Единственно, надо иметь ввиду, что на стареньких ПК с процессором Pentium III и ниже, видео с разрешением HD (1280 на 720 точек) может прокручиваться с сильным замедлением и остановками, а Full HD (1920 на 1080) и не прокручиваться вовсе.)
Но все же про возможность воспроизведения записей с регистратора в штатном плеере «Винды» стоит уточнить, поскольку встречаются регистраторы (особенно среди «серых» устройств), сохраняющие видео с какими-то особенными кодеками, которых Windows не знает.
Что-то с памятью моей
Подавляющее большинство регистраторов не имеет встроенной флеш-памяти (либо объем ее очень мал) и все записываемые треки сохраняются на внешней карте памяти формата microSD либо SD. Как правило, карта в комплект регистратора не входит и ее нужно будет докупать отдельно. И тут стоит иметь ввиду пару нюансов. Так, регистраторы, снимающие в разрешении Full HD, требуют карты памяти классом от 8 и выше («класс» характеризует скорость записи на карту и всегда указывается на ее упаковке). Заметим еще, что карту microSD всегда можно превратить в «большую» SD, воспользовавшись переходником, который во множестве карт вкладывается в продажный комплект. Поэтому при выборе регистратора размер слота карты принципиального значения не имеет. (В целом, microSD — это более «ходовая» карта, которую также можно использовать, например, в смартфоне, также слот под нее имеют многие USB-модемы, в продаже полно дешевых, от 200 рублей, microSD-USB – переходников.)
Еще один пользовательский момент — возможность считывания данных с карты (т. е. просмотра записей) без извлечения ее из регистратора. Во многих моделях такая возможность есть, и при подключении регистратора к ПК через комплектный кабель (miniUSB-USB, как правило), «Виндоус» автоматически определяет карту как «съемный диск» и видит на ней все файлы. Это упрощает «перегонку» записей на ПК, позволяя всякий раз не ковыряться с карточкой. Но такой возможности у видеорегистратора может и не быть (не зависит от класса и цены видеорегистратора), и в таком случае придется немного разориться на USB-переходник (ну и возни с просмотром будет побольше).
Сложности воспроизведения
Практически все видеорегистраторы, оснащенные GPS-приемником, предлагают просматривать треки через оригинальное ПО — специальный «плеер», в котором можно параллельно с видеозаписью видеть маршрут на картах Google при подключении к интернет) и диаграмму ускорений с датчика-гирокопа (G-сенсора). Здесь наиболее важный для пользователя момент — получение данного ПО.
В одних моделях такой «плеер» прошит во флеш-память самого регистратора и автоматически записывается на карту памяти при ее установке, либо после ее форматирования в регистраторе. В других — это ПО уже записано на карту памяти, идущую в комплекте. В третьих — оно поставляется на отдельном CD-диске, и в четвертых — «плеер» предлагается скачать самостоятельно из Интернета по ссылке, приводимой в инструкции.
Последний вариант, понятно, самый неудобный (это как минимум), и стоит дважды подумать перед покупкой регистратора, где предлагают скачивать ПО из Сети. Вариант, когда «плеер» записан на CD-диск, тоже нельзя назвать «дружелюбным к пользователю», поскольку также требует специальных манипуляций с ПК. В любом случае, выбирая видеорегистратор с GPS-приемником, непременно стоит уточнить, как реализовано получение оригинального «плеера» и далее делать вывод, какой вариант будет приемлем, а какой нет.
Многие модели регистраторов, в т.ч. и бюджетные, сегодня имеют функцию просмотра треков на телевизоре, что реализуется путем подключения через кабель — либо «колокольчики» (с тремя штекерами на выходе), либо провод с разъемом HDMI. Такой функционал, очевидно, будет интересен для любителей снимать на регистратор всякие там свои «покатушки», «автоэкскурсии в путешествиях» и т. д., чтоб затем их смотреть «на большом экране» и показывать друзьям. Что касается выбора регистратора с функцией «ТВ-выход», то здесь лучше ориентироваться на модели, где кабель для подключения к телевизору идет в комплекте. Ибо зачастую, при внешнем сходстве, разъем в корпусе регистратора оказывается нестандартным, и кабель для него не найти, или же, что встречается в бюджетных моделях, гнездо TV-OUT и вовсе бывает нерабочим.
Видеорегистратор фактически является переносная компактной видеокамерой, предназначенная для съемки обстановки вокруг автомобиля во время движения или на стоянке, а иногда и внутри салона. Основная камера устанавливается на лобовой стекло или рядом с ним, при этом ракурс съемки направлен по ходу движения автомобиля. Ценовой диапазон видеорегистраторов начинается примерно от 50 долларов и выше.
Критерии выбора видерегистратора для автомобиля
Качество записи видерегистратора
Опционально, выбор здесь заключается в подборе видеорегистратора с хорошей записываемой картинкой, на которой можно будет четко рассмотреть детали. Из актуального, на сегодняшний день, можно посоветовать разрешение HD или Full HD. При этом размер картинки у HD 1280×720, а у Full HD 1920×1080.
Так уже устаревшее качество VGA — 640х480, которое первоначально все же использовалось в видеорегистраторах, сегодня уже лучше «обойти стороной».
Так к качеству записываемого изображения можно отнести и еще один критерий, это разрешение матрицы. Не все видеорегистраторы, с пометкой HD смогут качественно записывать картинку, так как ее качество также будет определяться и разрешением матрицы. Так, если матрица имеет разрешение, скажем, 0,3 Мп, то нормально записываемое изображение будет 640х480. Все что будет сгенерировано этим видеорегистратором с большим разрешением, будет просто бессмысленно, так как детальности на видео не прибавится, а вот место, занимаемое на карте памяти, значительно уменьшится. Итак, для нормального HD качества необходима матрица от 2 Мп и выше. Метка HD на некоторых видеорегистраторах может быть просто маркетинговым ходом, поэтому смотрите характеристики матрицы камеры видерегистратора.
Формат записи видерегистратора
Важно не только воспринять, но и сохранить информацию с должным качеством.
Так от MJPEG – одного из первых форматов записи видеоизображения, уже не стоит ждать чудес. Это значит, что он не подойдет для качественной видеозаписи.
MPEG4 — является улучшенным MJPEG. Это уже кое-что. Так скажем что этот вариант записи уже можно рассматривать.
А вот предпочтительным форматом видеозаписи будет являться AVC (Advanced Video Coding) или H.264. Такой формат видео использует новейшие алгоритмы сжатия. Отличительные особенности этого стандарта от MJPEG: улучшенная цветопередача, повышенная четкость изображения, высокая скорость записи.
Разумеется, из трех перечисленных лучше выбирать технику с форматом записи H.264 (AVC), если хотите качественное видео.
Объем поддерживаемой памяти видеорегистратором
Естественно, что качественная запись потребует и значительного объема для хранения. Так, для записи четырех часов видео в формате HD потребуется флешка порядка 8 Гб. То есть, например, на весь период ночи, вам потребуется карта памяти порядка 16 Гб. Именно этот вариант надо рассматривать в качестве «стартового». А раз так, то и видеорегистратор должен поддерживать флешки от 16 Гб и более. На сегодняшний день в продаже уже имеются видеорегистраторы с памятью в 32 и 64 Гб. Естественно выбирайте наибольший объем поддерживаемой карты памяти. Кроме того для видеорегистратора надо выбрать и «правильную флешку», более подробно об этом в статье «Флеш карта (карта памяти) для видеорегистратора в автомобиле».
Электропитание видерегистратора в автомобиле
Здесь в принципе все понятно. Если устройство электронное, то ему требуется для питания электрический ток и напряжение. Здесь надо обратить внимание на то, каким напряжением питается ваш видеорегистратор. Обычно это два варианта 12 или 5 вольт. 12 вольтовое питание подается напрямую, например, от прикуривателя к видеорегистратору и допускает замену штатного провода, на какой либо альтернативный вариант. В случае если видеорегистратор питается от 5 вольт, то на штатном проводе, чаще всего у гнезда вставляемого в прикуриватель, стоит стабилизатор. Так вот в этом случае, менять штатный провод не стоит, так как исключая стабилизатор из цепи питание, вы можете сжечь видеорегистратор.
Крепление видеорегистратора в машине
У производимых видеорегистраторов, на сегодняшний день, имеется 2 типа креплений: “присоска” – позволяет без проблем изменять расположение прибора на стекле,
и “наклейка” – переустанавливать такое устройство сложнее.
Есть и еще возможные варианты, но они уже потребуют от вас нештатных решений и уметь делать что-то своими руками. Более подробно в статье «Установка и питание видерегистратора в автомобиле».
Угол обзора видерегистратора в автомобиле
Еще один важный показатель, который влияет на качество съемки угол обзора и он же угол съемки. Чем угол обзора больше, тем больший объем вокруг вы сможете заснять. Так скажем, заснять знак на обочине больше шансов у видеорегистратора с углом 120 градусов и несколько меньше с углом обзора в 90. Наиболее выигрышный вариант оказывается с большим углом обзора, так как он позволяет зафиксировать больший объем вокруг себя, а значит и записывает больше событий, которые возможно вам в последствии пригодятся. Сегодня вполне примелем показатель в 120 градусов. При большем угле обзора картинка уже имеет некоторые неестественные искажения, словно панорамное зеркало.
Экран в видеорегистраторе
Сегодня большинство видеорегистраторов имеют встроенный дисплей, который позволяет настраивать регистратор через меню, а также смотреть видео прямо с него, без подключения к специализированному устройству. По конструкции экраны бывают:
Откидные и поворотные на 180 градусов:
Откидные и поворотные на 270 градусов
Разворотные на 270 градусов — Съемные
Тип экрана достаточно ощутимо влияет на удобство просмотра картинки. Самым удобным можно считать откидные поворотные на 270 градусов. Встроенный (не откидной) монитор просто встроен в корпус, его положение не меняется. Конечно, для некоторых пользователей это может оказаться неудобно, ведь регистратор позиционируется на лобовом стекле с учетом оптимальной съемки, а не просмотра картинки. Если монитор может менять своё положение, эти неудобства минимизируются. Потому выбирают модели с откидным дисплеем (его легко закрывать, плотно прижимая к корпусу) и поворотным.
Диагональ экрана видеорегистратора
Значительная диагональ позволяет получить представление о размерах, маневрировании объектов, а соответственно и о сложившейся ситуации, при просмотре видео на самом видеорегистраторе. Удобный, размер экрана составляет порядка 1,5-3 дюйма. Дополнительные полезные функции в автомобильном видеорегистраторе Количество камер в видеорегистраторе Последние модели регистраторов позволяют оборудовать автомобиль сразу двумя камерами — на лобовом и заднем стеклах, чтобы снимать все, что происходит вокруг автомобиля.
Режимы записи в видеорегистраторе
Режим, который может использоваться видеорегистратором при записи видеороликов. Различают два основных режима: циклическую и непрерывную запись.
Непрерывная запись ведется без пауз и остановок до тех пор, пока на жестком диске или карте памяти остается свободное место. При заполнении всей памяти запись останавливается. Непрерывный режим записи рекомендуется использовать при большом объеме свободной памяти, например при наличии в видеорегистраторе накопителя на жестком диске.
Циклическая запись позволяет решить проблему с нехваткой памяти. В этом режиме запись видео производится небольшими порциями: сохраняются отдельные видеоролики длительностью 3—15 минут каждый. При заполнении всей памяти удаляется самый "старый" файл, и запись продолжается за счет устаревших файлов. Недостатком циклической записи является наличие паузы продолжительностью несколько секунд между окончанием одного ролика и началом другого. В это время запись видео не производится.
Встроенный динамик и микрофон
При наличии встроенного динамика и экрана можно просматривать записанные ранее ролики со звуком. Также встроенный динамик может использоваться для организации голосовых подсказок со стороны устройства (регистратор может "проговаривать" название выбранного режима, системные сообщения и подсказки. Голосовые подсказки позволяют водителю меньше отвлекаться от дороги, а в случае, когда экран видеорегистратора слишком маленький или вообще отсутствует, они просто незаменимы). Встроенный микрофон предназначен для записи звука в салоне автомобиля. Кроме того, видеорегистратор с микрофоном можно использовать как портативную видеокамеру.
GPS-навигатор в видеорегистраторе
Видеорегистратор с функцией GPS добавляет в видеоролик информацию о местоположении. В дальнейшем, при просмотре видеоролика на компьютере, можно соотнести картинку с положением на карте. Для чего может пригодиться? По координатам запросто вычисляется скорость, с которой двигался автомобиль, что станет неким неопровержимым аргументом.
ИК-подсветка (ночной режим) видеорегистратора
Функция предназначена для ночной съемки. Свет инфракрасных диодов (ИК диодов) не виден человеческому глазу и, следовательно, не привлекает внимания. Не смотря на это, камера видеорегистратора, в отличии от глаза человека, воспринимает излучения ИК-светодиодов как обыкновенный белый свет, что позволяет вести видеосъемку даже в полной темноте. Следует учитывать, что при определенном угле между направлением свечения ИК-диодов и лобовым стеклом автомобиля может возникать эффект засветки. В этом случае съемка через лобовое стекло будет невозможна, так как изображение будет засвечено.
В новые модели видеорегистраторов наравне с GPS-навигатором иногда встраивают так называемый «антирадар», или радар-детектор. Это радиоприемник, который обнаруживает полицейский радар и предупреждает водителя о том, что впереди приталась машина ГИБДД.
Датчик удара, или G-sensor в видеорегистраторе
В некоторые модели видеорегистраторов встроен G-sensor, или «датчик удара» — он распознает нестабильности при движении: резкие торможения и повороты, удары и вращение. Все подобные события записываются видеорегистраторами в отдельный файл, помечаются специальным маркером и защищаются от случайного стирания и перезаписи. Такое детектирование возможно при наличии встроенного акселерометра, прибора, определяющего положение в пространстве. Эти данные значительно увеличивают доказательность видеозаписи при использовании ее в качестве аргумента защиты. Считать показания G-сенсора можно не только на компьютере, но и на самом аппарате. Это позволит определить виновника дорожного происшествия на месте. Датчик движения в видеорегистраторе Функция позволяет начинать запись в тот момент, когда именно происходит движение в кадре. Бывает, что функция, прописанная в меню, на практике фальшивая. Функции включения записи от удара на самом деле не существует.
Фотосъемка в видеорегистраторе
Некоторые модели умеют снимать не только видео, но и фото. Как правило, фотографии также можно делать в ручном или автоматическом режиме. Качество снимков зависит от матрицы устройства.
Если вы часто путешествуете, да еще и на большие расстояния, тогда Вашим незаменимым помощником станет видеорегистратор автомобильный с возможностью записи на карту большого объема. Установие карту от 16GB до 32Gb, и будьте уверены, ни качество картинки не подведет Вас, а времени записи будет более чем достаточно для того, чтобы иметь полную картину дорожной ситуации.
Видео
Стандартные разрешения видеокартинки вашего видеорегистратора - 176х288, 352х288, 704х288, 704х576. Суммарным количеством кадров в секунду или скорость записи автомобильного видеорегистратора тоже может быть различной и зависит от количества потоков записи. Например для 4х канального видеорегистратора указана скорость записи 50 кадров в сек — это означает, что каждый канал записывает со скоростью 12,5 кадров в секунду. Режиму записи «в реальном времени» соответствует максимальная скорость записи одного канала видеорегистратора - 25 кадров в секунду.
Выбирая максимальные параметры - Вы гарантируете четкость мельчайших деталей (гос. номер, геометрия кузова и т.д), одновременно с качеством увеличивается размер записываемого видео.
- выводить изображение с видеокамеры
- осуществлять и воспроизводить запись
- проводить резервное копирование
Форматы записи
Наиболее распространены следующие форматы: AVI, MJPEG, MPEG4, H.264. Давайте рассмотрим подробнее каждый из них.
AVI - формат файлов с расширением AVI может содержать видео и аудио данные, сжатые с использованием разных комбинаций кодеков, что позволяет синхронно воспроизводить видео со звуком.
MJPEG – это покадровый метод видеосжатия, основной особенностью которого является сжатие каждого отдельного кадра видеопотока с помощью алгоритма сжатия изображений JPEG. Запись, сделанная в этом формате, занимает больший объем дискового пространства. Автомобильные видеорегистраторы, использущие этот стандарт сжатия считаются устаревшими, поэтому их стоимость не велика.
MPEG4 — этот формат предназначен для сжатия потока аудио- и видеоинформации. По сравнению с предыдущим, этот формат сжатия более современный, видео файл занимает в 10 раз меньше свободного места в памяти, соответственно компоненты этих устройств более совершенны и цена приборов выше.
H.264 – это наиболее совершенный формат. В нем использованы новинки алгоритмов сжатия аудио- и видео и. Отличительными особенностями этого стандарта от предыдущего: улучшенная цветопередача, повышенную четкость изображения и в два раза меньший объём видеофайла. Стоимость видеорегистраторов с Н.264 выше, чем приборов на основе предыдущего сжатия.
Автомобильный видеорегистратор будет более ценным если время записи видео будет как можно большим. Для определения необходимых характеристик устройства, Вы должны сообщить консультанту время записи, желаемое разрешение видео.
Если Вы решили подобрать прибор сами, время записи можно расcчитать по формуле:
T = S / (N*F*V*0.0824) , где:
Т — время записи в минутах.,
S — объем дискового пространства в Gb.
N — количество каналов,
F — размер кадра в kB (завистит от формата сжатия)
V — скорость записи кадров в секунду.
Аудиоканал
Как правило, автомобильный видеорегистратор имеет встроенный микрофон.
Интеллектуальные функции видеорегистраторов. Сенсоры
Наиболее интересными опциями являются наличие сенсоров. Например трехмерный 3D G-Force сенсор позволяет начать запись по следующим событиям резкое торможение, ускорение, удар.
Будьте внимательны! Данный материал содержит руководство по выбору автомобильного видеорегистратора. Если Вы в чем-то сомневаетесь, необходимо обратиться к квалифицированным специалистам, иначе вы рискуете стать жертвой недобросовестных посредников, которые, зачастую, реализуют устаревшее оборудование по ценам, во много раз превышающим его себестоимость! Мы готовы оказать профессиональную помощь в выборе подходящего прибора.
авто видеорегистратор, видеорегистратор цена ,видеорегистратор купить ,авторегистратор,автовидеорегистратор,автомобильный видеорегистратор blackeye каркам dvr dod
Видеорегистратор представляет собой электронное техническое средство, с помощью которого выполняется фиксация происходящих событий. Отображение информации осуществляется посредством видеокамер. Регистрирующее устройство может быть как комплектующим механизмом линии видеонаблюдения, так и самостоятельным прибором. Наибольшее применение видеорегистраторы получили в области обеспечения безопасности жизни водителя и транспортного средства. Видеорегистрирующее устройство имеет много типов и видов, каждый из которых отличается комплектацией и функциональными особенностями. Различные форматы записи видеорегистратора определяют качество информации и возможность ее воспроизведения на других устройствах.
При выборе видеорегистратора одним из определяющих параметров является формат записи информации и качество ее воспроизведения.
Какие существуют виды фиксирования сведений видеорегистратором?
Выбирая регистратор, рекомендуется обращать внимание на режим фиксирования данных. Выделяют два основных режима:
- Циклический;
- Непрерывный.
Сегодня производители предлагают гибридные модели, которые сочетают оба режима. Управление записывающим режимом может осуществляться вручную или автоматически. При наличии непрерывного режима видеозаписи, сведения записываются до тех пор, пока не закончится свободное место на накопителе (карте памяти). В случае недостатка памяти, сохранение прекращается и возобновляется только после очистки диска или съемного накопителя. В таком случае информацию можно не удалять, а вставить новый накопитель. Недостатком непрерывной фиксации является то, что в случае возникновения чрезвычайной ситуации на дороге, отображение событий может не осуществляться.
Как определить качество записываемой информации видеорегистратором?
Качество записи сведений регистрирующим прибором определяется по двум параметрам:
- Разрешению изображения;
- Записывающей скорости.
Существуют несколько видов разрешения, которые использует регистратор для вывода видеоизображения: 176х288, 352х288, 704х576, 1280х720, 1920х1080 пикселей.
Чем выше разрешающая способность, тем лучше качество передаваемого видеоизображения. При определении скорости фиксации нужно учитывать тот фактор, что в многоканальном устройстве указывается общая максимальная скорость. Чтобы получить скорость одной видеокамеры, нужно общую величину разделить на количество каналов. Оптимальной записывающей скоростью является фиксация 25-30 кадров в секунду для одной видеокамеры.
Какие существуют параметры записи видеоинформации?
В видеорегистраторах используются в основном три параметра записи:
- MJPEG;
- MPEG4;
- Н. 264.
Каждый из перечисленных параметров имеет свои плюсы и минусы. Параметр MJPEG является одним из первых установленных форматов. Работает он по принципу сжатия видеоинформации по каждому кадру в отдельности. Устройства с таким параметром сжатия отличаются невысокой стоимостью, однако не пользуются большим спросом. Видеоизображения, записанные в виде MJPEG, занимают много места на накопителе, тем самым память быстро заполняется.
Более современным параметром является MPEG4. После сжатия видеофайл занимает примерно 1/10 часть от общего объема обработанной информации. Стоимость оборудования с таким записывающим форматом значительно выше, но устройство пользуется популярностью. В последнее время все указанные параметры вытеснил формат сжатия Н. 264, который применяется наиболее часто. В нем значительно повышен уровень цветности и четкости видеоизображения.
По сравнению с другими файлами, объем информации Н. 264 меньше в два раза. Такие устройства являются самыми дорогими.
Просмотреть материалы, записанные в режиме Н. 264, можно при помощи следующих компьютерных программ:
- Media Player Classic HC;
- Windows Media Player;
- CyberLink PowerDVD;
- Xilisoft Video Converter;
- Elecard AVC HD Player и др.
Следует отметить, что видеорегистраторы могут выполнять фиксацию событий в форматах AVI и MOV.
Почему специалисты рекомендуют выбирать оборудование с режимом AVI?
Вышеперечисленные параметры записи отличаются друг от друга способами кодирования и сжатия информации. Используя кодек с наибольшей степенью сжатия, можно увеличить время записи происходящих событий. Согласно отзывам потребителей и заключениям специалистов, рекомендуется выбирать модели с параметром AVI. Преимуществами его использования являются:
- Удобство работы с записанными данными и сохраненными видеофайлами;
- Возможность копирования сведений на персональный компьютер или ноутбук, используя съемный накопитель;
- Легкость просмотра и обработки изображений;
- Воспроизведение записанных файлов автоматически;
- Просматривая информацию на компьютере, можно получить более качественное, четкое и разборчивое изображение;
- Возможность изменения масштаба изображения без потери качества и четкости.
Используя более современные форматы записи видеосигнала, пользователь может испытывать определенные трудности. Для обработки и просмотра сохраненных видеофайлов придется устанавливать дополнительные программные модули и изучать работу с ними.
Как выбрать наиболее подходящий видеорегистрирующий прибор?
Помимо режима, формата и качества записи видеоизображения, пользователям стоит обращать внимание на ряд других параметров:
На самом деле, статья посвящена разработке программы для перепаковки видео DVR из одного контейнера в другой, если это можно назвать конвертацией. Хотя, я всю жизнь считал, что конвертер занимается преобразованием (перекодировкой) формата видео. Данная статья является второй частью моей прошлой публикации, где я в подробностях рассказал про осуществление доступа ко всем видеозаписям видеорегистратора. Но в самом начале публикации я ставил ещё одну задачу: изучить алгоритм, по которому работает штатная программа-перепаковщик 264-avi и создать такую же программу, которая выполняла бы те же операции, но уже не над одним, а над целой группой файлов, причём «одним нажатием».
Поясню ещё раз суть всех вещей простым языком.
Пользователь имеет видеорегистратор, например, популярной модели QCM-08DL. Ему нужна видеозапись за определённую дату и время. Он может её извлечь либо на флешку, либо через web-интерфейс видеорегистратора (DVR) на компьютер. Извлечённый файл с видеозаписью (расширение .264) откроется только в программе-плеере, которая прилагается с DVR. Плеер весьма неудобный. Его ещё можно открыть, в плеере VLC, поставив режим RAW H264 в настройках демультиплексирования (настройки для опытных пользователей). Но при этом нормальному воспроизведению мешают, видимо, блоки аудиопотоков, которые интерпретируются как видео, а звуковое сопровождение отсутствует. А для того, чтобы видео открыть в любом плеере, файл .264 нужно его предварительно преобразовать в какой-либо популярный формат, например, avi. Программа для преобразования также прилагается с DVR. Но она также очень неудобная. Когда речь идёт об одном или нескольких файлах, проблем нет. Однако когда ставится задача получить доступ ко всем видеозаписям на жёстком диске, а уж тем более их все преобразовать в популярный формат, штатный инструментарий практически не пригоден.
Задача о доступе ко всем файлам решена. Этому и была посвящена прошлая публикация. Приступим к решению второй задачи. Мне уже давали «дельные советы»: достаточно в имени файла переименовать расширение с «264» на «avi», и всё попрёт, мол, нечего заморачиваться. Но это самая распространённая ошибка любого рядового пользователя, который, как правило, не разбирается в соответствующих вопросах.
В прошлой публикации я уже писал кратко про структуру исходного файла .264. Напомню.
Основная информация с аудио и видео потоками берёт начало по смещению 65536 байт. Блоки видеопотока начинаются с 8-байтового заголовка «01dcH264» (встречается также «00dcH264»). Следующие за ним 4 байта описывают размер текущего блока видеопотока в байтах. Через 4 байта нулей (00 00 00 00) начинается сам блок видеопотока. Блоки аудиопотоков имеют заголовок «03wb» (хотя, по моим наблюдениям, первый символ заголовка в некоторых случаях был необязательно «0»). После – 12 байт информации, которую я пока не разгадал. А начиная с 17-ого байта – аудиопоток фиксированной длины 160 байт. Какие-либо метки в конце файла отсутствуют.
Прокомментирую вышесказанное. Всё, что находится до смещения 65536 байт, оказалось неразгаданным и ненужным. Со смещения 65536 байт до первого заголовка потока есть небольшой промежуток, содержимое которого также не разгадано, и, тем более, как было мной проверено, оно не встречается в выходном файле avi после конвертации штатной программой.
Каждый блок видеопотока представляет собой один кадр. Первый символ в заголовке блоков видеопотока необязательно «0». Его назначение я не разгадывал, ибо, как я выяснил, оно не является ключевым в решении поставленной задачи. Второй символ заголовка видеопотока может быть как «1», так и «0». Во втором случае содержание блока видеопотока представляет собой так называемый опорный кадр. А в первом случае содержание блока видеопотока представляет собой закодированный сжатый кадр, который зависит от опорного кадра. Размер содержимого опорного кадра значительно больше размера содержимого сжатого вспомогательного кадра. Период следования опорных кадров, скорее всего, зависит от настроек степени сжатия в DVR. Но в моём случае период следования составил 1 кадр/сек.
Теперь по поводу частоты кадров. Как я выяснил, штатный перепаковщик не обращается ни к какому полю заголовка контейнера «264». Он судит о частоте кадров путём подсчёта соотношения количества блоков видео и аудиопотоков. И это значение при расчёте даже не округляется до целого значения, что видно из рисунка выше (обведено зелёным цветом). Как я выяснил, число блоков аудиопотока на единицу времени всегда и везде (в любом файле) фиксированное, а именно 25 блоков в секунду. Если исследовать файл видео с частотой 20 кадров/сек., то опорный кадр (блок) встречается через каждые 19 сжатых кадров, а для случая 25 кадров/сек. – через каждые 24 сжатых кадра.
Продолжим изучать структуру заголовка видеопотока. С первыми восьми байтами мы разобрались: это метка опорного или сжатого кадра плюс ключевое слово «H264». Следующие четыре байта, описывают, как я выяснил, не точный, а приблизительный размер содержимого видеопотока. А штатный перепаковщик перебрасывает полностью все байты этого содержимого, а затем получившийся размер записывает в соответствующие поля avi-контейнера. И это значение отличается от значения, указанного в соответствующем поле исходного .264 файла.
Двенадцать байт информации после заголовка блока аудиопотока я разгадал частично. Во всяком случае, ключевыми элементами являются 4 последних байта, после которых начинается аудиопоток. Это два 16-разрядных числа, которые описывают начальные параметры итерационной схемы декодирования из ADPCM в PCM. Декодирование увеличивает размер аудиопотока в 4 раза. Я ещё заранее при детальном исследовании файлов выяснил, что штатный перепаковщик декодирует аудио, но содержимое видео оставляет без изменений.
Не имея глубоких знаний, я долго пытался разгадывать, какой именно алгоритм декодирования применён в моём случае. Интуитивно уже догадывался, что применён метод сжатия ADPCM. Точнее, не интуитивно, а с грамотным подходом, опираясь на тот факт, что аудиопоток сжат ровно в 4 раза. А при открытии фрагмента в Adobe Audition как RAW в различных форматах (и сравнивая такой же фрагмент после перепаковки штатной программой), очень похожий (но не точный) по звучанию результат мне выдал ADPCM. Для разбора алгоритма сжатия мне помогла информация на сайте wiki.multimedia.cx/index.php/IMA_ADPCM. Здесь я узнал о двух начальных параметрах декодирования, а потом «методом тыка» догадался, что эти начальные параметры записаны в 4-х байтах перед началом аудиопотока. Опишу работу алгоритма и приведу грубую математическую интерпретацию (под спойлером).
Имеется последовательность сэмплов Кроме того, как уже говорилось, имеются два начальных параметра и . Требуется получить новую последовательность сэмплов . Как уже можно догадаться, первый по счёту выходной сэмпл уже известен: он совпадает с одним из начальных параметров . Это есть нечто иное, как «начальное смещение». Стоит отметить, что входные (исходные) сэмплы закодированы четырьмя битами. Для знаковых типов под кодировку попадают целые числа от -8 до 7 включительно. Старший бит, по сути, отвечает за знак числа. Выходные PCM сэмплы, которые получаются после декодирования, имеют знаковый 16-битный стандартный формат.
Анализируя код алгоритма на Си, можно увидеть две таблицы. Они приведены ниже.
Эти два «волшебных» массива, можно сказать, представляют собой табличные функции, в аргументы которых подставляются соответственно те самые два начальных параметра. В процессе итерации с каждым шагом параметры пересчитываются и подставляются в эти таблицы вновь. Сначала посмотрим, как это реализуется в коде.
Объявляем необходимые, в том числе и вспомогательные переменные.
Перед началом итерации нужно присвоить переменной current начальный параметр , а переменной stepindex — . Это делается за пределами рассматриваемого алгоритма, поэтому я не отражаю это кодом. Далее следуют преобразования, которые выполняются по кругу (в цикле).
Во вспомогательную переменную step из массива ima_step_table записывается значение по индексу stepindex1. Для первой итерации это начальный параметр , для дальнейших итераций это пересчитанный параметр . Затем значение из этого массива делится на 8 (видимо, нацело) операцией битового сдвига вправо, и результатом этого деления инициализируется переменная diff. Затем происходит анализ трёх младших битов значения входного сэмпла и, в зависимости от их состояний, переменная diff может быть скорректирована тремя слагаемыми. Слагаемые представляют собой аналогичное целочисленное деление значения diff на 4 (>>2), на 2 (>>1) или diff без изменений (пусть это будет деление на 1 для обобщения). Затем анализируется старший (знаковый) бит значения входного сэмпла. В зависимости от его состояния к переменной current1 прибавляется или вычитается переменная diff, которая была сформирована перед этим. Это и будет значение выходного сэмпла. Для корректности значения ограничиваются сверху и снизу. Затем stepindex1 корректируется путём прибавления значения из массива ima_index_table по индексу значения входного сэмпла с обнулённым знаковым битом. Значения stepindex1 также подвергаются лимиту. В самом конце перед повторением этого алгоритма значениям current и stepindex присваиваются только что пересчитанные значения current1 и stepindex1, и алгоритм повторяется заново.
Можно попробовать разобраться, чтобы приблизительно понять, как формируется переменная diff. Пусть . Это значения переменной step на каждом i-ом шаге итерации, как значения функции (массива) аргумента , где . Для удобства обозначим сишную переменную diff как . Следуя логике рассуждений, описанных выше, имеем:
где — младшие 3 бита числа . Приводя к общему знаменателю, преобразуем это выражение к более удобному виду:
Последнее преобразование основано на том, что, в неком смысле, младшие три бита (0 или 1) числа с представленными коэффициентами есть нечто иное, как запись абсолютного значения этого числа, а старший бит числа будет соответствовать знаку всего выражения. Далее по формуле
вычисляется новое значение сэмпла на основе старого. Кроме того, вычисляется новое значение переменной :
Модуль в формуле указывает на то, что переменная попадает в функцию без учёта старшего знакового бита, что и отражено в коде. А функция — это значение массива ima_index_table с индексом, соответствующий аргументу.
В описании формул я пренебрёг операциями ограничения сверху и снизу. Итого, итерационная схема выглядит приблизительно так:
Сильно глубоко в теорию кодирования/декодирования ADPCM я не вникал. Однако, табличные значения массива ima_step_table (из 89 штук), судя по отражению их на графике (см. рис. ниже), описывают вероятностное распределение сэмплов относительно нулевой линии. На практике обычно так: чем сэмпл ближе к нулевой линии, тем он чаще встречается. Следовательно, ADPCM основан на вероятностной модели, и далеко не любой исходный набор 16-битных сэмплов PCM может быть корректно преобразован в 4-битные сэмплы ADPCM. А вообще говоря, ADPCM — это PCM с переменным шагом квантования. Как раз, видимо, данный график отражает этот самый переменный шаг. Он выбран грамотно, на основе закона распределения аудиоданных на практике.
Теперь перейдём к описанию структуры avi контейнера. На самом деле, он представляет собой сложную иерархическую структуру.
Но, упростив задачу для частного случая, я представил структуру avi в линейном виде. Итого получилось так: файл avi состоит из большого заголовка, нулевых байтов пропуска (JUNK), области потоков аудио и видео (с их заголовками и размерами содержимого), и списка индексов. Последний служит, в частности, для прокрутки видео в плеере. Без этого списка прокрутка не будет работать (проверял). Он представляет собой только оглавление, где перечислены ключевые названия блоков потока (совпадающими с названиями в заголовках блока), соответствующие размеры содержимого и значения смещений (адреса) относительно начала области потоков.
Теперь можно перейти к разработке программы. Конкретное описание задачи следующее.
В корне раздела X: имеется каталог «DVR». В данном каталоге содержится множество непустых подкаталогов (и только подкаталогов) с именами, которые соответствуют неким датам. В каждом из таких подкаталогов имеется множество файлов с различными именами и расширением «264». Требуется в разделе Y: создать каталог «DVR», а в нём те же самые подкаталоги, как и в разделе X:. Каждый из таких подкаталогов заполнить файлами с теми же соответствующими именами, но с расширениями не «264», а «avi». Данные avi-файлы нужно получить из исходных 264-файлов путём их обработки, которая, так или иначе, повторяет алгоритм уже имеющийся программы. Обработка заключается в прямой перепаковке потоков видео, перепаковке с декодированием потоков аудио, форматировании файла avi. Программа должна запускаться из командной строки следующим образом: «264toavi.exe X: Y:», где «264toavi.exe» — имя программы, «X:» — исходный раздел, «Y:» — раздел назначения.
На самом деле, для упрощения задачи, можно было написать программу, которая занималась бы только преобразованием (перепаковкой) одного файла, сделав дня неё два аргумента: имя входного файла и имя выходного файла. А затем, чтобы реализовать именно групповую перепаковку, можно написать командный батник (bat), используя другие инструменты, например, Excel. Но мной была реализована полноценная программа, весьма громоздкая. Вряд ли исходный код заслужил бы внимания у читателей. Опишу структуру программного кода.
Программа написана на языке Си в среде разработки «Dev-C++» с элементами WinAPI. В программе реализованы три большие вспомогательные функции: функция формирования первоначального заголовка avi, функция декодирования сэмпла аудио и функция сканирования исходного файла «264» по словам. Словами я называю порцию из 4-х байт. Было замечено, что размеры заголовков и содержимого всех потоков кратны четырём байтам. Функция сканирования может возвращать пять значений: 0 – если это обычные 4 байта видеопотока для перепаковки, 1 – если это заголовок блока видеопотока опорного кадра, 2 – если это заголовок блока видеопотока сжатого кадра, 3 – если это заголовок блока аудиопотока, 4 – если это «испорченный» блок, который нужно игнорировать при перепаковке. Очень-очень редко, но такое встретилось. Испорченный блок (как я его назвал) представляет собой заголовок вида «\0\0\0\0H264», где «\0» — нулевой байт. Блоки такого вида штатный перепаковщик игнорирует. Разумеется, содержимое такого блока может оказаться вполне рабочим, но я подобные блоки игнорирую для максимального приближения своей программы к штатной.
В основной функции, кроме организации каталогов, происходит считывание входного файла функцией сканирования. В зависимости от того, что возвратила эта функция, происходят дальнейшие действия. Если это заголовки видеопотоков, то формируются в выходной avi файл соответствующие заголовки. Там они именуются по-другому: «00db» — это заголовок блока видеопотока опорного кадра, а «00dc» — для сжатого кадра. После операции перепаковки (переписывания слов) перед новым вновь встретившимся заголовком происходит расчёт размера перепакованного содержимого и запись этого значения в поле, которое следует сразу за заголовком только что обработанного потока. Если при сканировании встретился заголовок аудиопотока, то формируется в выходной avi файл имя заголовка «03wb» и тут же в цикле происходит декодирование аудиопотока из ADPCM в PCM одновременно с записью декодированного содержимого в avi файл. Одновременно со всем вышесказанным происходит фиксирование краткой информации (оглавления) во временный файл индексов «index». Функцию сканирования можно было не делать, а всё писать в основной функции. Но тогда программа бы получилась очень громоздкой и практически сложно читаемой.
В конце всей операции, когда кончился входной файл «264», прежде чем перейти на новый файл, программа грамотно завершает все операции. Сначала корректируются определённые поля в заголовке avi файла, значения которых зависят от размеров и количества прочитанных потоков, а затем к почти готовому файлу avi присоединяется содержимое временного файла «index», который затем удаляется. После этих операций выходной avi файл готов к воспроизведению.
Во время работы программы в командной строке происходит текстовая визуализация, которая отображает текущий каталог, файл, а также номер блока видеопотока, приходящийся на опорный кадр и соответствующий момент времени видео в минутах и секундах. А если входной файл имеет не произвольное имя, а исходное (содержащее номер канала, дату и время начала записи), то происходит более интерактивная визуализация, основанная на арифметике даты-времени.
При тестировании и отлаживании программы основные проблемы у меня возникали при работе с декодированием звука. Простая арифметика работала некорректно, если я при объявлении переменных в функции декодирования неграмотно расставлял типы. Из-за этого, некоторые блоки аудиопотоков были битыми, а на слух наблюдались щелчки. Несколько не совсем понятных полей заголовка исходного файла 264, которые я не смог разгадать, оказались нечувствительными к результату. В отличие от штатной программы моя программа не выкидывает из операции перепаковки последний незавершённый блок потока. Хотя, его отсутствие никакой практической роли не сыграет. Ещё штатная программа, в отличие от моей, оставляет за собой «мусор» в небольшом количестве (это содержимое последнего потока) в самом конце avi файла после индексов. При всём при этом видео воспроизводится практически одинаково. А перепаковку программа осуществляет за тот же промежуток времени, что и штатная программа.
В заключение я приведу иллюстрации, демонстрирующие структуру организации потоков в файле .264 (в шестнадцатеричном редакторе WinHex) на примере одного из файлов и вид программы RiffPad с открытым в нём перепакованным файлом avi. Данная программа мне очень упростила процесс изучения структуры avi файла. Она наглядно демонстрирует иерархическую структуру, показывает байтовое содержимое каждого члена структуры и даже умно интерпретирует содержимое заголовков в виде списка параметров. На картинке, в частности, продемонстрирован тот факт, что содержимое видеопотока переписывается без изменений.
Читайте также: