Результаты поиска по запросу «

в ожидании чуда скачать

»

Запрос:
Создатель поста:
Теги (через запятую):



весна ожидание 

весна,ожидание


Развернуть

телевидение ожидание vs реальность длиннопост 

Телеканал Ожидание Реальность Discovery С Н А N N Е L ~ Наука п°*ОшРс *22»*» Выживание в джунглях HAL PLANET Дикие животные Коти ки □ NATIONAL GEOGRAPHIC HISTORY География и археология Чокнутые люди ¿SS** г История Пришельцы и странные эксперты Новости Сомнительные


Развернуть

мистер бин криптовалюта Видеокарта ожидание 

Me waiting for crypto currency to die down so graphics cards will be cheap again,мистер бин,криптовалюта,Видеокарта,ожидание
Развернуть

Justice League Flash Batman Wonder Woman Cyborg (DC) Aquaman Justice League (фильм) DC Video The Flash видео ...DC Comics фэндомы DC Extended Universe 

А вот и первый официальный трейлер (до этого был футаж, а не трейлер) Лиги справедливости.



Развернуть

Игры новости The Day Before провал 

Авторы The Day Before закроют студию и не доделают игру

Студия Fntastic, ответственная за The Day Before, объявила о своем закрытии. Продажи экшена в первые три дня после релиза оказались провальными, поэтому средств на дальнейшую разработку попросту нет. Все уже заработанные деньги Fntastic потратит на то, чтобы вернуть долги.

Игры,новости,The Day Before,провал

Серверы игры пока продолжат свою работу, но доделывать экшен никто не будет. Авторы отмечают, что очень хотели развивать The Day Before, выпуская новые патчи, но теперь сделать они этого не смогут.

«Мы просим прощения за то, что не смогли оправдать ожиданий. Мы сделали все, что было в наших силах, но, к сожалению, переоценили свои возможности. Разработка игр — невероятно сложный процесс», — студия Fntastic.

The Day Before вышла 7 декабря 2023 года на PC в Steam. Большинство игроков обвинилр разработчиков в обмане. Геймеры считают, что разработчики долгое время намеренно вводили всех в заблуждение, публикуя красочные трейлеры и фрагменты геймплея, демонстрируя высокое качество продукта. Однако на запуске в шутере оказалось мало контента, проблемы с серверами и множество багов.

Кетчуп

Ну, в принципе было ожидаемо.

Развернуть

Отличный комментарий!

Студия выпустила The Day Before и закрылась The Day After
Drake Silverwing Drake Silverwing11.12.202322:06ссылка
+128.9

без перевода Комиксы опять hoppy doodle Игровой комикс Игры Half-Life 3 Half-Life В свете последних событий смешные комиксы 

IT'S HAPPENING! THEY ARE ANNOUNCING HALF LIFE 3 TONIGHT!!!,без перевода,Смешные комиксы,веб-комиксы с юмором и их переводы,опять,hoppy doodle,Игровой комикс,Игры,Half-Life 3,Half-Life,В свете последних событий,comics,again,hoppy doodle,games,Half-Life 3,Half-Life,смешные комиксы
Развернуть

Отличный комментарий!

veer veer03.09.202407:28ссылка
+52.4

Star Citizen Игры специально для реактора длиннопост 

В отличии от Н1_3, БС уже существует. Покупаешь и играешь. БЦРтМЕка1г # ответить V Но ты до 30 ноября можешь просто скачать и посмотреть/полетать, там щас бесплатные корабли для всех интересующихся. ^ Уа1Р 23.Nov.2023 00:22 ответить V ссылка X 6.2 Во-первых. Этот рендер на можно провернуть в

Пару дней назад в посте чудо-движке Star Citizen, каменты пидоров убедили меня попробовать эту игру. Я больше суток качал 100-гиговый клиент этой игры, и даже смог некоторое время в неё поиграть.

Решил написать этот пост, для того, чтобы вы не сделали моей ошибки.

Manhattan Bridge,Star Citizen,Игры,специально для реактора,длиннопост

Я играл в кучу других космических игр: игры серии X, Elite, EVE online, Avorion и даже космические рейнджеры. Не говоря уже о космических стратегиях. Но сравнивать Star Citizen я ни с чем не буду. Это вам просто для контекста.

Начну с того, в чём Star Citizen действительно лучший. Это лучший симулятор езды на метро. Там есть всё, и платформы, и расписание, и подождать своего поезда придётся. И остановку свою можно проехать — 10 из 10.

Star Citizen,Игры,специально для реактора,длиннопост

1. Действительно ли можно сейчас бесплатно поиграть?

Ты прямо сейчас можешь Ситизен скачать и запустить, если комп позволит. Посмотреть самостоятельно. Там до 30 ноября бесплатные корабли, несколько раз в год такой ивент проводится. ERROR - Disconnection (CODE 30000) Connection Lost: Game client has lost its connection to the game server. OK

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

И действительно, сетевые лаги присутсвуют. Многие взаимодействия происходят с задержкой, иногда не приезжают лифты. Однажды, когда я ехал в метро меня выкинуло. Пока я перезапустил игру, пока всё загрузилось, мой персонаж проехал свою остановку. Пришлось пересаживаться на другой поезд и ехать обратно. Ещё один плюс симулятору метро!

2. Интерфейс

Знаете, я родился в Беларуси, так что в мою прошивку встроен навык, привыкать к любой херне, насколько бы плоха она не была.

И да, я бы смог привыкнуть к странному решению, чтобы ваимодействовать с чем-то нужно вначале нажать клавишу F, а потом отдельно кликнуть по тому, с чем ты хочешь взаимодействовать. Выглядит костыльно на первый взгляд, но может это зачем-то нужно?

Но в целом интерфейс в игре плохой. А местами откровенно ужасный. К примеру галактическая карта, она просто ужасна. Складывается впечатление, что её пилил какой-то джун, которого посадили с новым движком разбираться. А потом кто-то по ошибке запихнул эту карту в игру. Она кое как работает, но это даже не уровень инди проектов. Это просто стыдно.

*\ ARC L3 tï- CRU L5,Star Citizen,Игры,специально для реактора,длиннопост

Да и в целом интерфейс плох, невнятен, не отзывчив. Разработчики Star Citizen почему-то решили игнорировать опыт предыдущих поколений специалистов по интерфейсам, и решили переизобрести велосипед с нуля. Но к сожалению велосипеда с первого раза у них не получилось. Оно конечно "едет", но назвать это "велосипедом" сложно.

SUPPRESS) ««" «CRD • ESP Mining - Fracture . K. Target a rock for your ship to automatically scan it. Maintain this,scan to project more data on th^ietectedwe o auto rock on the HUD. Switch to Fracture Mode " and use your Mining Laser ‘ to fracture the rock. Use Mouse Wheel Up or Mouse Wheel

Какие-то микроскопические буковки, написаные белым по белому с какой-то адской тенью, которая совсем не помогает читабельности.

Star Citizen,Игры,специально для реактора,длиннопост

Если бы у моего автомобиля был такой интерфейс, то я бы в аварию попал, пока пытался бы понять с какой скоростью я еду.


3.Производительность

Игра ОЧЕНЬ требовательна к процессору. У меня далеко не самый слабый комп, но процессор не самый свежий. 11700kf, 4080, 64 ddr4.

При пробуждении, игра выдает 20 fps, потом разгоняется до 30-40. Пока не выйдешь из комнаты, при входе в новые помещения случаются просадки,а иногда даже фризы.

Хуже всего, когда едешь на поезде c видом на город, Там fps выше 20 не поднимается, постоянно фризит.

Star Citizen,Игры,специально для реактора,длиннопост


4. Ходьба

Казалось бы — существует куча игр, где прекрасно реализована ходьба. Многие из вас прошли десятки, если не сотни километров в GTA, Ведьмаке, Kingdom Come и Red Dead Redemtion. Скорее всего играя в эти игры вы вообще не тратили свои ментальные ресуры, на то чтобы подумать о ходьбе.

Но к сожалению ходьба оказалась ещё одним "велосипедом", который разработчики Star Citizen решили переизобрести заново.

Ходьба тут неестественно медленная, будто бы под водой. Знаете, когда в CS, в вас поадает пуля — она вас замедляет. Так вот ходьба в SC. будто бы такие пули в вас попадают беспрерывно. Неприятное ощущение.

Но не всё так плохо. Тут есть ещё и спринт. И он очень быстрый! Если хотите представить, что вы Уссейн Болт, убегающий от копов — просто нажмите shift. Но фризов станет больше.

Выводы

Впечатление у меня сложилось неприятное. То что они за 10 лет разработки не смогли сделать нет не хороший, хотябы просто нормальный интерфейс — для меня маркер, намекающий на профнепригодность.

Развернуть

Отличный комментарий!

Стар ситизен это прогрев гоев, игра которая никогда не выйдет.
Albrun Albrun25.11.202316:21ссылка
+65.6

geek консоли videogif gif Игры сукин сын видеоигры Anbernic RG35XX без перевода 

With over 5000 Games! The ANBERNIC RG35XX!

Развернуть

story риелторы Россия 

Как я в очередной раз поработал с риелторским агентством

Сап, пидоры риахтура. Хочу поведать интересную историю, которая наверняка окажется полезной тем, кто планирует работать с риелторскими агенствами на покупку/продажу квартиры.


Лично у меня ранее уже был небольшой опыт и покупки, и продажи и сдачи в аренду своих квартир и обычно проблем с риелторами не возникало, в том числе и с сотрудниками компании "Этажи". Поэтому я и в этот раз решил обратиться в данную организацию. Агента мне подобрали быстро по заявке на сайте. Через какое-то время я посетил офис, подписал агентский договор ну и познакомился сРегиной (ссылка на ее страницу на сайте компании) лично. Никакого особого впечатления она, конечно же, не произвела. Все происходило максимально обычно, полет был штатный.

При личной беседе сотруднику было обозначено, что скорость продажи квартиры сейчас является приоритетным параметром, поэтому квартира продается в общем по цене ниже рыночной (ниже в среднем на 500 000). Регина продемонстрировала понимание и сказала, что проблем не возникнет, назначила фотографа, который сделал профессиональные снимки и 3D-тур в 360°.

В первую неделю было назначено два просмотра. Помимо этого Регина постоянно в личной переписке и по телефону уверяла, что квартирой интересуется очень много людей: как покупателей, так и других риелторов. По ее словам, некоторые из них уточняли информацию, чтобы передать своему клиенту, а некоторые вообще пошли подаваться на ипотеку и сейчас только ждут решения от банка. В итоге за первый месяц всего было три просмотра, из которых Регина лично присутствовала только на одном. Никакого личного участия и, тем более, презентации квартиры она не организовала.

Помимо продажи этой квартиры мы параллельно подыскивали квартиру на покупку и, конечно, планировали обе сделки провести через одного риелтора. По общим условиям и изначальным договоренностям, Регина по нашим параметрам подыскивает подходящие варианты и кидает в личку, но и мы сами серфим разные сервисы и понравившиеся варианты скидываем риелтору, которая уже созванивается с продавцом/его представителем и узнает все, что нужно с высоты своего профессионализма.

За тот же месяц Регина подобрала 4 варианта с параметрами, выходящими за рамки описанных нами как по цене, так и по состоянию. Мы же нашли вариантов в 2-3 раза больше на разных ресурсах, по которым ответ от риелтора получили не сразу и, тем не менее, получили. Но все они были отрицательными. По той или иной причине они, как оказалось, не подошли. Где-то внесен аванс, где-то много собственников с детьми, где-то не согласны на условия покупки под частичную ипотеку.

Нас насторожило, что все наши варианты по той или иной причине были забракованы. Поэтому я решил написать по первому же объявлению с авито, которое висело у нас в списках и которое не подошло, потому что "квартира уже не продается, внесен аванс". Ответ продавца был следующим:

•УУ 21:02 Здравствуйте! Ещё продаёте квартиру? 14 июля 2023 Здравствуйте! Продаём 17:03 уу 17:20 Авансов у вас не внесено? О нет 17:35,Истории,риелторы,Россия,страны

И похожие ответы мы получили, позвонив по некоторым объявлениям с домклика и циана.
Регина это объяснила тем, что мы, возможно, общались с разными людьми: она с риелторами, а я напрямую с продавцами. Поэтому информация не совпала, ведь собственники некомпетентные и тд. Но обещала снова связаться и снова уточнить.

В итоге все заглохло.

Мы, понимая, что квартира нихуя не продается, просмотров нихуя нет, от риелтора получаем только отписки обратились к другому риелтору, которого нам посоветовали знакомые. На удивление, агент приехала в свой выходной, сделала фото квартиры, обсудила с нами условия и сразу же начала подыскивать покупателей и накидывать варианты на покупку уже новой квартиры. Дело двинулось, так сказать.

Как только мы донесли информацию до Регины и сообщили, что ее объявления необходимо удалить, чудесным образом задвигалась и она и (!) за два дня организовала 4 показа, на первом же из которых клиент решил выходить с нами на сделку.

Обсудив все с новым риелтором, мы решили провести сделку на продажу все же с Региной, поскольку скорость была для нас очень важна, а сама продажа и так затянулась. Ну а на покупку новой квартиры уже договорились выходить с новым агентом. Решение продолжить работу с Этажами было очередной ошибкой, что я понял уже позднее.

Мы назначили встречу с покупателем в офисе компании для внесения аванса и обсуждения общих сроков, в которые все хотят уложиться. Покупатель так же разделял наше желание закрыть сделку как можно быстрее. Итого 18 июля мы встретились, договорились постараться выйти на сделку до 30 июля, но с учетом форс-мажоров оставили небольшой период для маневра и максимальной датой сделки установили 5 августа. Риелтор, естественно, в момент обсуждения присутствовала, участвовала, осознавала указанные даты и не потрудилась никому из нас сообщить, что 22 июля она уходит в ЕБУЧИЙ ОТПУСК.

Пока я собирал документы по коммуналкам, мне в личном кабинете этажей прилетели документы на подписание на оплату комиссии, которые я нехотя подписал после разговора с Региной. Это была очередная ошибка. Даже если дело задвигалось, даже если аванс внесен, не нужно идти на поводу у риелторов и подписывать что-то кроме агентского договора, поскольку все это не гарантирует вам, по-сути, нихуя. Внесенный аванс может быть покупателем возвращен.

После подписания этих документов, Регина перестала оперативно отвечать на сообщения и после вовсе пропала нахуй с радаров. Телефон был недоступен. На горячей линии мне дважды обещали передать информацию начальству и что со мной свяжутся. Не связался никто. По всем вопросам мне пришлось консультироваться с юристами и риелтором из вообще, блять, другой компании. Поскольку я предусмотрительно взял контакты покупателя, мы лично урегулировали большинство вопросов и уже готовы были выходить на сделку 28 июля.

После очередных звонков в компанию меня, наконец, перевели на руководителя Регины, который очень активно "дакал" в трубку, говорил, что "согласен, это косяк" (забавная терминология в официальном общении с клиентом) и обещал все исправить. Через два часа Регина вышла на связь с недовольным "Я в своем официальном законном отпуске". Рили? Да мне глубоко похуй на твой отпуск и на то, насколько он официален. Меня это волновать и касаться вообще нихуя не должно, либо должно быть оговорено заранее.

С горем пополам мы договорились на сделку на 1 августа, где меня встретил в указанное время покупатель со своим риелтором, а мой риелтор опоздал. И пока мы находились в ожидании Регины, мне задали вопрос: ознакомлен ли я с договором купли-продажи, который, как оказалось, составляла не сторона покупателя, как это обычно происходит, а юристы Этажей. На отрицательный ответ, мне скинули копию договора в ватсапп, где я сам, практически перед подписанием, ознакомился со всеми положениями. Положениями, которые были составлены в общем нормально, но в деталях - в пользу покупателя. В частности, изначально мы договаривались, что покупатель передаст часть средств под расписку в дату заключения договора после оформления документов в МФЦ на перерегистрацию собственника. Мне это было необходимо для внесения первоначальной суммы по новой квартире. В договоре же было указано, что весь остаток будет передан только после того, как в реестре уже изменят собственника. Напомню: договор составляло мое агентство.

Времени корректировать договор, находясь в МФЦ не было (для этого нужно ехать в офис агентства, передавать юристам и ждать), поэтому я был вынужден подписать его в таком виде, полагаясь на изначальную договоренность, которую покупатель подтвердил. Из-за этого небольшого нюанса покупатель уже после подписания договора внезапно начал требовать передачу ключей сразу после передачи документов в МФЦ, иначе частичную сумму он под расписку не закинет, а отдаст весь остаток только после смены собственника. А у меня на 4 августа горела покупка квартиры по очень выгодному варианту, который мне совершенно не хотелось упускать. Пришлось на условия согласиться и съехать с квартиры в короткий срок, благо, нам временное жилье подогнали.

Регина Андреева... ■< V. : Просто почему-то все идут на принципиальность Вы интересы чьи представляете? Покупателя или мои? Договор в чьих интересах составляли, что покупатель смог условиями манипулировать и чуть не сорвал мне сделку на покупку? Какого хрена все договорённости не были учтены?

19:00 ИД • *И^ЙЙ..1 12% 1 ГЪ. Регина Андреева... ■< V. Алексеи, компания ваши ин1ересы представляет! Я с ваших слов договор составляла 14:19 Юристам передала! 14.20 Они составляли 14 20 Разговаривайте соответствующим образом! Регина, я веду диалог в соответствии с качеством


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

Если риелтор изначально не проявляет энтузиазма - шлите на хуй, даже если он начинает подгоняться. Даже если, как у меня, риелтор начинает находить варианты. Это ничем хорошим не закончится, похуизм не искоренен. Он обязательно даст о себе знать снова.
Всегда созванивайтесь с продавцами по объявлениям дополнительно сами. Агентствам выгодно пропихивать свои предложения и квартиры, которые висят у них в базе, а не те, что висят в другом агентстве.
Если риелтор при прямых вопросах по документам отвечает по типу "я думаю, здесь имеется в виду вот это", "скорее всего, тут говорится об этом", "наверное это вот так" и даже не пытается уточнить, а выкладывает вам на подписание бумаги - шлите на хуй или просите другого, компетентного специалиста.
Если, после так называемого "косяка" первое, что говорит риелтор в трубку - это попытки оправдаться и сделать из вас идиота, а не извинения, шлите такого сотрудника на хуй. Потому что, во-первых, это говорит о хуевой клиентоориентированности, во-вторых, следствием конфликта может быть затаенная обида, что выльется в еще худший сервис и хуевые условия лично для вас. В конце концов, с таким сотрудником вы просто теряете время.

Развернуть

Отличный комментарий!

Блин, вообще с трудом понимаю зачем риелторы нужны когда есть инет
fantafanat fantafanat16.08.202317:32ссылка
+31.7

Иисус geek программирование реактор помогающий много букаф story длиннопост 

Вскрытие формата OJD

Кому лень читать интересную историю, вот ссылка на конвертер с инструкциями, как превратить .ojd в .mp4https://drive.google.com/file/d/1GlMXGss0R2-jYP0TOZ_2Y1xzl9Ugar7l/view?usp=sharing

инструкции в readme.txt применимы к unix/linux, но всё работает и на WSL под виндой.

Ну ладно, а кому не лень и таки интересно, услышьте же охуительную историю о том, как я этот самый конвертер собрал!

Заранее предупреждаю - я нихрена не смыслю в аудио и видео, я просто программист на C. всю инфу про H264 и AAC я нагуглил и вычитал в коде старой версии ffmpeg; если тут есть эксперты, простите меня заранее, если какую-нибудь хуиту скажу.

НАЧАЛО ИСТОРИИ. ТАИНСТВЕННОЕ ВИДЕО НА РЕАКТОРЕ? СКАНДАЛЫ, ИНТРИГИ...

Ну так вот, ушел я тут, значит, в отпуск на пару недель, и тут вижу интересный пост от Иисуса:

http://joyreactor.cc/post/4899255

Удивительная история - файл с видео, который сам Иисус не может открыть!

Вместе с многоуважаемыми пидорами из комментов начал гуглить, с превеликим любопытством - случай и правда таинственный, не находилось вообще ничего толкового. С большим интересом тред пялился на хекс-дампы, которые Иисус предоставил в начале ветки ( http://joyreactor.cc/post/4899255#comment23718856 ), особенно на повторяющееся ASCII слово qbox...

И наконец товарищ http://joyreactor.cc/user/nun-buoy , а затем и товарищ http://joyreactor.cc/user/dadv нашли совпадение - старый проприетарный аппаратный видео/аудио кодек MG1264! Эта штуковина была вроде как сделана с рачетом на мобильные девайсы, что совпадало с инфой от Иисуса (видео со старого телефона).

Сообща нами были найдено следующее:

* Базовые характеристики: https://www.semiconductorstore.com/pdf/newsite/mobilygen/MG1264_Comet3_DS.pdf

* Слитые доки по версии 1.1 кодека: https://manualzz.com/doc/7153241/mg1264

* Чудом сохранившийся кусок самопального муксера на C#: https://csharp.hotexamples.com/site/file?hash=0xed6a386bc80b4638eac9ea030e141c8312db2507c58453306c1ab71598c2b8f2&fullName=VideoStreamCodecs/Formats/QBox.cs&project=ctapang/GPUCyclops (толку от этого в результате не вышло, просто интересно почитать)

* Полностью сохранившаяся либа для работы с аппаратным кодеком: https://tipok.org.ua/node/13, плюс патч для ffmpeg 0.6, включающий в себя демуксер для проприетарного формата qbox: https://gist.github.com/lynxis/3033513 (последнее в результате стало основным столпом решения проблемы)

Ручки уже основательно чесались, так что я скачал те самые доки и стал читать и сравнивать с хекс-дампами из треда.

Те самые qbox-ы оказались форматом контейнеров для AAC и H264 пакетов. В доках был описан формат самих qbox-ов:

The QBOX header is as follows. typedef struct { uint32_t box_size; uint32_t box_type; // "qbox" uint32_t box_flags; // (version << 24 | box_flags) uintl6_t sample_stream_type; uintl6_t sample_stream_id; uint32_t sample_flags; uint32_t sample_cts; uint8_t sample_data[]; } QBox;


Действительно, в хекс-дампах Иисуса прослеживались эти самые qbox-ы, в основном все как описывалось (http://joyreactor.cc/post/4899255#comment23720396), но с одним нюансом. Первые 8 байт файла не являлись частью какого-либо qbox-а. "Ну мало ли, наверное, проприетарный хедер", подумал я. Все казалось достаточно однозначно: ojd файлы - наверняка просто qbox аудио/видео стрим в формате "что энкодер высрал, то в файл и запишем" (в примерах из доков MG1264 такие файлы назывались .qbx), плюс в начало дописаны 8 байт для точной идентификации типа файла или еще чего-то в этом духе. Из интереса я еще некоторые время попытался эти 8 байт нагуглить, проверил пару баз файл хедеров, но это мне ничего не дало.

Размер первого qbox-a ??? (13744 байта, считая magic number этот хедер) ** /,Иисус,Исусе,geek,Прикольные гаджеты. Научный, инженерный и айтишный юмор,программирование,реактор помогающий,много букаф,Истории,длиннопост

Стоит отметить, что тут все, блять, все в big-endian. Я раньше никогда с такой херней не работал, так что тут все немножко ломало мой привыкший к little-endian мозг =)

Тут стоит отметить один неприятный нюанс - я это далеко не сразу заметил, но несмотря на то, что те самые доки вроде бы жестко гарантируют, что в первом H264 видео qbox-е будут только NAL-ы SPS-PPS, в реальности тут в первом qbox-е выходит последовательность AUD-SPS-PPS-IDR (это можно увидеть здесь: http://joyreactor.cc/post/4899255#comment23718856 у каждого NAL-а 4 байта стандартного старткода заменено на префикс-размер, так что их можно легко подряд читать, не парясь с полным декодированием).

Для наглядности:

00000000 00000010 00000020 00000030 00000040 00000050 00000060 00000070 00000080 00000090 04 61 00 аО 36 00 03 ff 00 00 35 bO 71 62 6f 73 oo 02 0002001000 07 72 44 ba al 09 10^^^Р^ТЯ27 64 40 le ас 2c а6 eQ_a0 c0 а3 00 °°,U Ifl flfl ee 06 e2 c0|00 00 35 66|25 b3 04 83 7a 29 3f

Тут выделены размеры (которыми заменены старткоды). Начинается каждый NAL так: 1 бит == 0, 2 бита == реф индекс (типа группа типов), дальше 5 битов ID (nal_unit_type: 9==AUD, 7==SPS, 8==PPS, 5==IDR), это все гуглится по запросу "ISO/IEC 14496 pdf". Короче, получается, что вместо чистого конфига тут еще и данные видео есть.

Если бы я знал хоть что-то об H264, я наверняка бы заподозрил, что 13744 байта как-то слишком дохуя для одних SPS-PPS. Но я ничего не знал и ничего не заметил, так что подозрений об актуальности и возможной устаревшести дока относительно ojd ко мне в душу не закралось...

КАК Я ЕБАЛСЯ С ФОРМАТОМ OJD

Ну, в общем, охуительно уверенный в себе, я постучался к Иисусу в личку, и он мне скинул .ojd файл. Дальше я нашел github FFmpeg-а, клонировал, и стал тыркаться. Приладить тот патч с tipok.org.ua к современной версии FFmpeg-а оказалось слишком сложно, но благо в репозитории был бранч подходящей версии 0.6.7 (патч писался для 0.6.1), я чекаутнул бранч и приладил на него qbox.c, qbox.h и прочие диффы из патча, нужные для работы демуксера. Нагуглив, как с этим ffmpeg вообще работать (лол), легким движением хвоста... эээ... tail-а я обрубил первые 8 байт файла ojd и попытался скормить результат свежескомпиленному ffmpeg-0.6.7.

Естественно, просто так нихуя не сработало.

Покопавшись в ffmpeg-е (выяснилось, что у него, по крайней мере, в версии 0.6, компилится дебаг-билд ffmpeg_g, который заходит с gdb), выяснил, что первый qbox парсится нормально, но со вторым возникают проблемы. Применив xxd, я обнаружил странное: второй qbox начинался через какой-то промежуток после ожидаемого конца первого.

Для наглядности покажу на изначальном .ojd (без обрубленного начала):

/Downloads/ojd$ xxd test_video.ojd | grep qbox -B 10 -A 10 | head -30 00000000 0461 OOaO 3600 03ff 0000 35b0 7162 00 r*^ 4- • â«*0 5. qbox 00000010 0000 0001 0002 0002 0010 0007 7244 baal .. rD.. 00000020 0000 0002 0910 0000 0018 2764 401e ac2c 'd(a. 00000030 6a02 d049 абеО aOcO a800 OOlf

Тут хорошо видно "хедер" в начале, после него qbox с размером 0x35b0, и по-хорошему, если это qbox стрим, как в доках, то следующий qbox должен начаться на 0x8+0x35b0==0x35b8, но вот нихуя, начинается он аж на 0x3690!

Изрядно прифигев с такого расклада событий, я тупо пялился на этот хекс-дамп, и тут заметил в нем нечто крайне интересное.

А вы, дорогие мои читатели, заметили это? Заметили, блять, с чего начинается строка 00003600?

0461 00a0 **** 03ff

Практически идентично хедеру в начале файла!!!!

Я охуел. Я сделал grep. Я охуел еще больше.

00000000: 0461 OOaO 3600 03ff 0000 35b0 7162 6f78 .a 00000200: 0461 OOaO 0601 03ff e609 cda5 fd58 2d0b .a 00000400: 0461 OOaO 1302 03ff cc43 2abb 917c 6g37 .a 00000600: 0461 OOaO 0203 03ff 5359 6798 cdc8 GOaO .a 00000800: 0461 OOaO 0204 03ff a9ad lf g6 35Gb 2ef2 .a ОООООаОО: 0461 OOaO 0305

Это пиздец. Каждые 0x200 (512) байт .ojd файла начинаются с 8-байтного префикса. Байты 5-6, по ходу, какой-то... sequence number? Причем нормальный счет идет только в байте 6, в байте 5 же происходит какая-то полная поебень, но там явная закономерность (36-06-13-02-02-03-21-00 повторяются, но потом меняются с переносом единицы из 6 байта, короче, что-то крайне странное).

Я не знаю, что это за наркомания. Я подозреваю, что это след какой-то крайне допотопной (возможно самопальной?) блочной файловой системы родной ОС девайса, на который таинственные видео записывались. Если кто тут узнал-распознал эту херню, объясните мне, пожалуйста, мне очень любопытно!

Кстати, забавный нюанс - в видео Иисуса этот сраный формат немножко поломал конец qbox-стрима, то есть последний qbox, который не влез в последний блок ojd, оказался таки обрезан. Это видно в комменте Иисуса с дампом конца ojd файла здесь, если посчитать размер последнего qbox-а: http://joyreactor.cc/post/4899255#comment23719489 а после конца этих блоков зачем-то идет очень дохуя нулей =) но не буду на этом заостряться.

Ну, делать нечего, по-быстрому я написал конвертер, который из каждого 512-байтного блока в файле .ojd выкидывал первые 8 байт и записывал результат в файл .qbx.

printf("Converting ojd blocks to qbox stream..An"); while (fread(block, INBLK_SIZE, 1, infile)) { int bufval = 0; int i; for (i = 0; i < 8; i++) { bufval |= block[i]; > if (bufval = 0) { // Reached ojd padding at end of file, apparently break; } fwrite(block + 0x8, INBLK_SIZE - 0x8, 1,

Дело пошло веселее. С выкинутыми префиксами блков конец каждого qbox-а стал совпадать с началом следующего, и ffmpeg... послал меня нахуй, потому что что-то оказалось не так с аудио. Оказывается, демуксер не генерировал почему-то аудио-стрима, хотя я точно видел в файле аудио-qbox-ы.

Решил я разобраться с этим позже. Путем нехитрых хаков кода, я смог декодировать видео в валидный mp4 файл с... ебаным слайдшоу, судя по частоте кадров. Настроив вручную взятый от балды фреймрейт, я еще раз декодировал видео, и... моему взору предстали обещанные Иисусом ебущиеся карлики! Успех!!!!!!!!!

Ебались они, правда, как-то подозрительно слишком резво, так что я сделал заметочку себе на будущее - разобраться с фреймрейтом ебаным. Но сначала аудио.

И тут меня ждал пиздец.

КАК Я ЕБАЛСЯ С АУДИО

В ебаных доках черным по белому было написано, что первый аудио qbox должен содержать аудио конфиг в формате AudioSpecificConfig из ISO/IEC 14496-3. Но конфиг-флага ни на одном из аудио-qbox-ов не нашел ни демуксер, ни я вручную. Правда, в доках и не было написано, что этот флаг обязательно на qbox-е с аудио-конфигом должен быть... Я решил поэкспериментировать и взять просто первый аудио-qbox и попытаться дешифрануть его как конфиг.

Меня ждало жестокое разочарование.

FFmpeg матерился по-черному, закидывал меня эррорами, говорил мне, что конфиг говно. Поебавшись немного, я горько вздохнул, вбил в гугле "ISO/IEC 14496-3 pdf" и начал вникать.

Table 1.13 — Syntax of AudioSpecificConfig() Syntax No. of bits Mnemonic AudioSpecificConfig () { audioObjectType = GetAudioObjectType(); samplingFrequencylndex; 4 bslbf if ( samplingFrequencylndex == Oxf ) { samplingFrequency; } channelConfiguration; 24 uimsbf 4 bslbf sbrPresentFlag = -1;

Как видно, первые 5 бит должны указывать на тип объекта. Судя по докам MG1264, этот тип должен быть 2 (AAC_LC).

И тут уже незадача - все содержимое qbox-ов с аудио начиналось на 0x21:

Иисус,Исусе,geek,Прикольные гаджеты. Научный, инженерный и айтишный юмор,программирование,реактор помогающий,много букаф,Истории,длиннопост

дас ист крайне печально, ведь первые 5 битов 0x21 - это вовсе не 2 (AAC_LC), а очень даже 4 (AAC_LTP), который тот билд ffmpeg-а вообще не поддерживал.

Вообще, рассматривая эти qbox-ы, я невольно задумался - а есть ли среди них вообще этот самый AudioSpecificConfig? Даже если проигнорировать первые 5 битов, дальше все равно получалась лютая хуита. В доках было четко сказано, что девайс поддерживает 2-канальное стерео AAC-LC аудио с sample rate 48000, 44100, 32000, 24000, или 22050 Hz.

Крепко задумавшись, я продолжил гуглить и штудировать ISO/IEC 14496-3, как вдруг до меня дошло, что все эти пакеты прекрасно подходят под определение AAC raw data block типа ChannelPairElement!

Table 4.3 - Syntax of top level payload for audio object types AAC Main, SSR, LC, and LTP (raw_data_block()) Syntax____________________________________________________No. of bits Mnemonic raw_data_block() { while( (id = id_syn_ele) != ID_END){ 3 uimsbf switch (id) { case ID_SCE: break;

Table 4.5 - Syntax of channel_pair_element() Syntax No. of bits Mnemonic channel pair elemento { element_instance_tag; 4 uimsbf common_window; 1 uimsbf if (common_window) { icsJnfo(); ms_mask_present; 2 uimsbf if ( ms_mask_present == 1 ) { for (g = 0; g < num_window_groups; g++) { for (sfb =

Здесь ID_CPE==1. CPE - это просто пакеты для двухканального стерео-аудио (это подтвердил и код ffmpeg). Я чувствовал, что я на верном пути!
Но мне пришлось смириться с горькой правдой - конфига аудио (AudioSpecificConfig) в этом стриме qbox, по ходу, нет вообще. Возможно, девайс, с которого это было записано, поддерживал только одну настройку аудио, и qbox с аудио из файла ojd специально выкинули? Или же расчет был на то, что какие-то декодеры поумнее ffmpeg 0.6 смогут и без конфига тут разобраться? Мистика, конечно...

Ну, раз конфига нет, то сделаем сами, хуле. Будет у нас свой AudioSpecificConfig с блекджеком и шлюхами. Сначала я просто хакал ffmpeg, а потом уже дописал фальшивый аудио qbox в начало файла. Но это я чуть позже покажу.

Итак, мы имеем audioObjectType==2, 3<=samplingFrequencyIndex<=7, channelConfiguration==2. Если что, кстати, последние 2 значения - индексы в такие массивы (из кода ffmpeg 0.6.7):

const int ff_mpeg4audio_sample_rates[16] = { 96000, 88200, 64000, 48000, 44100, 32000 57 24000, 22050, 16000, 12000, 11025, 8000, 58 }; 59 const uint8_t ff_mpeg4audio_channels[8] = { 61 0, 1, 2, 3, 4, 5, 6, 8 62 }; 7350,Иисус,Исусе,geek,Прикольные гаджеты. Научный, инженерный и айтишный

После некоторых попыток стал я пробовать различные комбинации и... нихрена. FFmpeg выплевывал тонну ошибок (но файл какой-то все-таки выдавал). В чистое AAC не конвертировалось, а при декодировании в raw audio (wav) мои уши встречал оглушительный пердеж. После некоторой ебли, мне показалось, что на частоте 22050 ошибок вроде выдается меньше, и стал с ней тыркаться.

Дальше я взял в руки gdb и стал разбираться, откуда идут ошибки. FFmpeg декодирует каждый channel_pair_element так: сначала общий конфиг, потом левый канал, потом правый. В пакете с данными они идут друг за другом последовательно (в табличке channel_pair_element это видно - там это называется individual_channel_stream).

Удивительно, но все ошибки выдавались при декодировании правого канала.

Почесал я репу, похакал я код ffmpeg-овского декодера aac, чтобы, значит, он игнорил ошибки со второго канала, и с каждого qbox-а брал только один экземпляр данных для первого канала.

Получившееся в результате аудио было... странным. В правом ухе оглушительно пердел сатана. Но в левом, кажется, слышались стоны ебущихся карликов!!!!!!

...но стонали они как-то... ускоренно? Я задумался и сел вчитываться в код ffmpeg. Скорее всего, второй канал не выходило распарсить, потому что плохо парсились данные первого канала. Если его недопарсить до конца, или же наоборот перепарсить, то не попадешь на данные второго канала. В конце первого канала шли спектральные данные, которые парсились каким-то очень сложным кодом... Но на его парсинг влиял sample rate.

Отсюда следует очевидное умозаключение - sample rate неправильный. Но я, как было написано раньше, свято верил слитым докам MG1264, в которых было написано, что самый маленький sample rate для аудио, который поддерживает кодек - 22050 герц.

Но в какой-то момент я от безнадеги таки взял и попробовал 16000 герц (индекс 8).

И ебать-колотить, что же я увидел? Конвертацию аудио без ошибок от ffmpeg! И что же я услышал? Громкие, четкие, стерео стоны ебущихся карликов!!!! Я смог!!!!!

В конвертер для qbox-ов добавилась новая фича - дописывать в начало стрима аудио-qbox с найденным мною конфигом.

8 // A config audio qbox that we can prepend to a qbox stream from an ojd 9 const char config_audio_qbox[] = { 10 // BEGIN QBOX HEADER 11 0x00, 0x00, 0x00, OxlA, // box_size, 26 bytes 'q', 'b1, 'o', 'x', // box_type, magic number 13 0x00, 0x00, 0x00, 0x01, // box_flags, data-present flag set


КАК Я ЕБАЛСЯ С ФРЕЙМРЕЙТОМ

Последней моей задачей было сделать конвертацию видео с нормальным фреймрейтом. Аудио каким-то образом отконвертилось идеально, но чтобы подогнать к нему по времени видео, пришлось подбирать вручную - выяснилось, что там был фреймрейт 25. Но откуда брался изначальный фреймрейт, который был похож на ебаное слайдшоу? Оказалось, что все дело было в демуксере, который зачем-то рескейлил дефолтные 90000 герц базовой шкалы тайминга на какую-то хуйню. Исправив сей огрех и пошаманив немножко с кодом таймстампов, я получил нормальную комбинацию аудио с видео, нормальный mp4 файлик, который уже можно было отправить заждавшемуся Иисусу!

ЗАКЛЮЧЕНИЕ

Ебать это было весело. Я дохрена нового для себя узнал про мир аудио и видео энкодингов. И теперь умею немножко работать с ffmpeg! Ну и в кои-то веки есть что интересного рассказать реактору =) всем бобра, я пошел допроебывать свой отпуск!

Развернуть

Отличный комментарий!

Akagitsune Akagitsune07.09.202117:44ссылка
+31.6
В этом разделе мы собираем самые смешные приколы (комиксы и картинки) по теме в ожидании чуда скачать (+1000 картинок)