Софтодром   

Программы

Windows Windows
Linux Linux
Android Android
iOS iPhone

Новости

Форумы
аня.дети
вика.дети
маша.дети
оля.дети
катя.москва
лиза.москва
света.москва
таня.москва
детям.москва

Все домены тут

Программист Google объяснил странную дату создания видеоролика СБУ багом в стандарте MPEG-4



Новости    Интернет


Программист Google объяснил странную дату создания видеоролика СБУ


Программист Анатолий Воробей, который, согласно его профилю в LiveJournal, работает в отделении Google в Тель-Авиве, куда он приехал в 91-м году в возрасте 15 лет, а до этого жил на Украине в городе Житомире, опубликовал в своем блоге пост, в котором объяснил странную дату создания широко обсуждаемого в СМИ разоблачительного ролика СБУ багом в стандарте MPEG-4. Вот, что он пишет:

«Если вы следите за кризисом в Украине и в частности за падением малазийского "Боинга", то заметили, наверное, что украинское СБУ опубликовало запись переговоров сепаратистов вскоре после падения самолета. Видео была закачано на канал СБУ в Ютюбе всего через несколько часов после падения самолета. Люди заметили, что если скачать с Ютюба это видео, а потом посмотреть на видеофайл в какой-нибудь программе, которая показывает метаданные, то "дата создания" в файле оказывается 16-го июля, т.е. днем раньше собственно падения. Причем это не может быть разница в часовых поясах, потому что время почти на 24 часа раньше падения; отсюда люди заключили, что это доказательство того, что СБУ сделало фальшивые записи еще до катастрофы. Правда, другие люди вскоре заметили, что Ютюб поступает так с любым видео, которое в него загружают, и это видимо баг в Ютюбе. Так что теперь волнами по сети и оффлайновым СМИ расходятся разоблачение СБУ и разоблачение разоблачения.

Кажется, я разобрался, что это за баг. В видеоформате mp4 (стандарт MPEG-4) есть возможность записать "время создания" любого потока данных, с помощью специальной метки. Значение этой метки в стандарте - кол-во секунд, прошедших с 1 января 1904 года, или так называемое "время по эпохе макинтоша", потому что маки первыми стали использовать такой отсчет времени. Меж тем в современных серверах намного проще иметь дело с "временем по эпохе Юникса", а именно кол-вом секунд, прошедших с 1 января 1970 года. В результате этого во множестве программ, которые работают на Линуксе или других юниксовских операционных системах, есть кусок кода, который выглядит примерно так:

- получить "время сейчас по юниксу";
- добавить разницу между временем по юниксу и временем по макинтошу - это некая константа;
- полученное "время сейчас по макинтошу" записать в файл mp4, который мы создаем.

Чему равна константа "разница между временем по юниксу и временем по макинтошу"? Она равна в точности числу секунд, прошедших между 1 января 1904 и 1 января 1970. Это 66 лет, из которых 17 были високосными (проверьте, если не доверяете мне). Всего дней получается: 66*365+17 = 24107, а секунд, учитывая 86400 секунд в сутках: 24107*86400 = 2082844800. Это правильное значение константы.

Но есть маленькая крохотная незаметная проблемка. Часть стандарта MPEG-4 - исходники библиотек, которые умеют читать и писать mp4-файлы, так называемое "reference software" на C++, которым все могут пользоваться, чтобы позаимствовать или сравнить со своим кодом. Полное название этой части стандарта - "ISO/IEC 14496-5". Если вам интересно, вы можете скачать эту часть стандарта бесплатно с официального сайта. И если вы посмотрите на исходники, то увидите, что там используется другое значение этой константы, а именно 2082758400. Это ровно на 86400 секунд, то есть на одни сутки, меньше правильного значения.

Как случилось, что создатели MPEG-4 неправильно посчитали разницу между двумя датами? Может, кто-то вручную считал високосные годы и ошибся? Не знаю. Так или иначе, неправильное значение из-за его присутствия в стандарте попало во множество библиотек для чтения и записи видеоформатов. Постепенно в последние годы правильное значение начинает его сменять; если вы поищете в гугле оба числа, то увидите несколько точных описаний проблемы в исходниках нескольких проектов: "стандарт предлагает использовать 2082758400, но правильное значение 2082844800". В других проектах правильное значение стоит просто потому, что они сами посчитали, исходя из определений эпох, а не пользовались исходниками из стандарта.

Если в библиотеке, которая создает для вас mp4-файл, записано неправильное значение, то что произойдет, когда она захочет записать время "сейчас"? Она возьмет правильное число секунд по юниксу, добавит константу на сутки меньше, чем надо, и получит тем самым число секунд, согласно эпохе макинтоша, которое соответствует времени на сутки раньше. Я послал описание проблемы и решения разработчикам Ютюба, и надеюсь, что вскоре этот баг исчезнет.»


Автор: Softodrom.ru
Дата:

Новое: Интернет
22.04.2025 14:06

В Облаке Mail появилась безлимитная автозагрузка

Сервис Облако Mail представил безлимитную автозагрузку со смартфона


16.04.2025 21:06

Поиск «Яндекса» научился объяснять решение математических задач для старшеклассников

Поиск «Яндекса» теперь помогает разобраться, как решать задачи по алгебре из школьной программы 10–11 классов


09.04.2025 15:43

В Telegram начала действовать система маркировки каналов из реестра Роскомнадзора

Регистрация в реестре Роскомнадзора обязательна для всех каналов, создающих контент для российской аудитории и имеющих более 10 тыс. подписчиков


07.04.2025 16:45

Роскомнадзор предупредил о возможных ограничениях для зарубежных провайдеров

В России может быть ограничена работа зарубежных провайдеров, не соблюдающих требования российского законодательства


03.04.2025 12:56

«Яндекс» запустил конкурента ChatGPT и сервисов Google

«Яндекс» представил Нейроэксперта — сервис, который сам найдет нужную информацию в файлах и ссылках


Популярное: Интернет
03.01.2023 17:02

Как опубликовать свою статью на Софтодроме

Если вы хотите опубликовать свою статью на Софтодроме, то рассказываем о том, какие статьи нам нужны


25.12.2023 14:13

Суд отправил жительницу Петербурга в психбольницу за фейки про армию в соцсети

Калининский районный суд Санкт-Петербурга вынес приговор местной жительнице за фейки в соцсети «ВКонтакте»


27.12.2023 13:09

Фильм «Догмен» Люка Бессона выйдет в российских онлайн-кинотеатрах

Российская премьера нового фильма «Догмен» режиссера Люка Бессона состоится в онлайн-кинотеатрах, но в прокат в обычных кинотеатрах фильм в России не выйдет


26.12.2023 18:10

Доходы пиратов выросли на 71% после ухода Netflix и Голливуда

На фоне роста нелегальных сервисов официальные аудио- и видеостриминговые сервисы находятся в стагнации, отмечают аналитики


24.12.2023 16:49

Ведущий шахматный портал заблокировал Крамника за критику в свой адрес

Российский шахматист в очередной раз раскритиковал руководство платформы из-за отсутствия серьезных мер по борьбе с читерством



Ищете, где скачать бесплатные программы?

Скачать бесплатные программы для компьютера на Windows и смартфона на iOS или Android можно на Софтодроме. На данный момент в каталоге Софтодрома представлено более 13 000 бесплатных программ для Windows, iOS, Android и Linux.
Все рубрики статей (3546 / 219):


Бесплатные программы | Рейтинги | Статистика | Авторам | Рассылки
Copyright © 1999-2025 Softodrom.ru
Реклама | О проекте | О перепечатках | Пользовательское соглашение | Политика конфиденциальности | Карта сайта