реактор помогающий

Подписчиков:
0
Постов:
17

Сегодня Веда уснула навсегда

Всего через несколько часов после написания этого поста https://joyreactor.cc/post/5706393, пришли грустные, но ожидаемые новости.
В 16:31 Веда закрыла свои глазки навсегда.
Болезнь сделала своё дело молниеносно и вызвала перитонит, кошка страдала около часа, после чего инъекция сделала то, что должна, так как помочь тут было уже нечем. 
15.06.2016-08.12.2023
Однако же, всё равно спасибо тем нескольким людям, что кинули копеечку надежды:
Дмитрий Дмитриевич Л.
Виталий Николаевич Е.
Один неназванный анон
Всего было собрано 2200 рублей, которые были направлены на компенсацию расходов на эвтаназию.
Это немного, но это честная работа(с)
Спасибо вам, пидары.
Честно говоря, больше не знаю, что сказать, кроме того, что я любил эту кошку и теперь наступило время горечи и всепоглощающей грусти. Это не только кошка моей подруги, это не только моя кошка - это ещё и кошка Реактора.
Спи сладко, Ведьмочка, мягких тебе облачков. 
Сильнее смерти только память.

РЕАКТОРЧАНЕ ПОМОГИТЕ! НАДЕЖДА ОСТАЛАСЬ ТОЛЬКО НА ВАС.
РЕАКТОРЧАНЕ ПОМОГИТЕ! НАДЕЖДА ОСТАЛАСЬ ТОЛЬКО НА ВАС. Ситуация следующая: у меня проблема с hdd, я его давно распилил на два тома, для двух разный виндовс, (преобразовал в динамический, и сделал два составных тома) а потом объединил два тома в один, но я не знал что составные диск так просто не трутся, и мой диск остался распилен на два составных тома. теперь, у меня динамический диск с двумя составными томами и мне нужно конвертировать как то его в базовый, без потери данных, или хоть как то получить доступ к моим данным, помогите пожалуйста.
з.ы. картинка для привлечения внимания.

Вскрытие формата 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#comment23718856 ), особенно на повторяющееся ASCII слово qbox...
И наконец товарищ http://joyreactor.cc/user/nun-buoy , а затем и товарищ http://joyreactor.cc/user/dadv нашли совпадение - старый проприетарный аппаратный видео/аудио кодек MG1264! Эта штуковина была вроде как сделана с рачетом на мобильные девайсы, что совпадало с инфой от Иисуса (видео со старого телефона).
Сообща нами были найдено следующее:
* Слитые доки по версии 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-ов:

Действительно, в хекс-дампах Иисуса прослеживались эти самые 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 с1б^ГЯа
Тут выделены размеры (которыми заменены старткоды). Начинается каждый 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 (без обрубленного начала):
Тут хорошо видно "хедер" в начале, после него qbox с размером 0x35b0, и по-хорошему, если это qbox стрим, как в доках, то следующий qbox должен начаться на 0x8+0x35b0==0x35b8, но вот нихуя, начинается он аж на 0x3690!
Изрядно прифигев с такого расклада событий, я тупо пялился на этот хекс-дамп, и тут заметил в нем нечто крайне интересное.
А вы, дорогие мои читатели, заметили это? Заметили, блять, с чего начинается строка 00003600?
0461 00a0 **** 03ff
Практически идентично хедеру в начале файла!!!!
Я охуел. Я сделал grep. Я охуел еще больше.
Это пиздец. Каждые 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.
Дело пошло веселее. С выкинутыми префиксами блков конец каждого qbox-а стал совпадать с началом следующего, и ffmpeg... послал меня нахуй, потому что что-то оказалось не так с аудио. Оказывается, демуксер не генерировал почему-то аудио-стрима, хотя я точно видел в файле аудио-qbox-ы.
Решил я разобраться с этим позже. Путем нехитрых хаков кода, я смог декодировать видео в валидный mp4 файл с... ебаным слайдшоу, судя по частоте кадров. Настроив вручную взятый от балды фреймрейт, я еще раз декодировал видео, и... моему взору предстали обещанные Иисусом ебущиеся карлики! Успех!!!!!!!!!
Ебались они, правда, как-то подозрительно слишком резво, так что я сделал заметочку себе на будущее - разобраться с фреймрейтом ебаным. Но сначала аудио.
И тут меня ждал пиздец.
КАК Я ЕБАЛСЯ С АУДИО
В ебаных доках черным по белому было написано, что первый аудио qbox должен содержать аудио конфиг в формате AudioSpecificConfig из ISO/IEC 14496-3. Но конфиг-флага ни на одном из аудио-qbox-ов не нашел ни демуксер, ни я вручную. Правда, в доках и не было написано, что этот флаг обязательно на qbox-е с аудио-конфигом должен быть... Я решил поэкспериментировать и взять просто первый аудио-qbox и попытаться дешифрануть его как конфиг.
Меня ждало жестокое разочарование.
FFmpeg матерился по-черному, закидывал меня эррорами, говорил мне, что конфиг говно. Поебавшись немного, я горько вздохнул, вбил в гугле "ISO/IEC 14496-3 pdf" и начал вникать.
Как видно, первые 5 бит должны указывать на тип объекта. Судя по докам MG1264, этот тип должен быть 2 (AAC_LC).
И тут уже незадача - все содержимое qbox-ов с аудио начиналось на 0x21:
дас ист крайне печально, ведь первые 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!
Здесь 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):
После некоторых попыток стал я пробовать различные комбинации и... нихрена. 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 с найденным мною конфигом.

КАК Я ЕБАЛСЯ С ФРЕЙМРЕЙТОМ
Последней моей задачей было сделать конвертацию видео с нормальным фреймрейтом. Аудио каким-то образом отконвертилось идеально, но чтобы подогнать к нему по времени видео, пришлось подбирать вручную - выяснилось, что там был фреймрейт 25. Но откуда брался изначальный фреймрейт, который был похож на ебаное слайдшоу? Оказалось, что все дело было в демуксере, который зачем-то рескейлил дефолтные 90000 герц базовой шкалы тайминга на какую-то хуйню. Исправив сей огрех и пошаманив немножко с кодом таймстампов, я получил нормальную комбинацию аудио с видео, нормальный mp4 файлик, который уже можно было отправить заждавшемуся Иисусу!
ЗАКЛЮЧЕНИЕ
Ебать это было весело. Я дохрена нового для себя узнал про мир аудио и видео энкодингов. И теперь умею немножко работать с ffmpeg! Ну и в кои-то веки есть что интересного рассказать реактору =) всем бобра, я пошел допроебывать свой отпуск!

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

Реакторчане помогите вспомнить название игры

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

Проблема была решена.

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

Обычно в ютубе в новом дизайне у меня было по 5 видео в строке:
Но сейчас после авторизации показывает по 3 видео в строке, огромные такие плашки. Подскажите, пожалуйста, как исправить, вдруг кто сталкивался с такой проблемой. Искал на сторонних ресурсах, но ничего связанного с данным вопросом не нашёл.

P.S.: Переход к классическому дизайну не предлагать, это я умею, просто хочу узнать, с чем связана эта проблема и как её исправить.
пидоры, помогите
-Ü
05
С
<,пидоры помогите,реактор помоги,реактор помоги,реактор помогающий,YouTube
@Wanzerr помнится ты ждал результатов, они есть у меня.

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

картинку принтовал размером 1m. x 0.70 cm



детали и переходы вышли супрер для такого размера.



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



Короткая (на самом деле нет) и криво (вот тут правда) написанная история

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

Я скрывал подробности этих событий полгода, но моя память всё хранит.

Это произошло утром 18 июня 2018 года. В время выгула барбосов в количестве 1.5 штуки (Старый овчар и страшненький пекинес) были замечены вороны, которые с громким карканьем кого-то загоняли в кусты. При более близком рассмотрении этим кем-то оказался пищащий соколёнок, зашуганный настолько, что без проблем был взят одной рукой словно шаверма, хотя шаверма, в отличие от пернатого засранца на клюётся (не слишком больно, скорее неприятно и обидно). 



Дома птичка была зафиксирована эластичной резинкой, пока искалась коробка, дабы в ней заключённый и прибывал на время выяснения дальнейших действий.


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



Далее я отписался в несколько вкудахтерских групп, которые посвящены диким птицам и помощи им, дожидаясь ответа параллельно стал самостоятельно гуглить этот вопрос.


Ради спокойствия птички коробка была перенесена на балкон с открытым окном.


Поначалу сокольчик имел некоторый скепсис в отношении моих ухищрений.


Однако это продлилось недолго и грозный хищник начал робко выглядывать из своего убежища.

 
А немногим позже уже свободно бродил по подоконнику. В это время я начал получать ответы от знающих (или незнающих, но хорошо это скрывших ) людей, записанных в контактных лицах групп, про которые я писал выше. От них я узнал, что у меня на руках слёток (охотничья молодая птица, только что начавшая вылетать из гнезда) сокола -пустельги, а так же кучу лишней информации уровня /b/ под каким угло лучше лобызать пятую точку пернатому созданию, чтобы ему было приятно и ничего не повредить, но это можно списать на издержки рабочей деформации зоозащитников.


 Впрочем полезные советы по дальнейшим действиям так же были. Среди них были передать с рук на руки специалистам, передать из рук в лапы родителям и дождавшись вечера, когда вороны спят сном праведников, выпустить его в парке. Учитывая отсутствие видимых повреждений у подопечного или признаков родителей в зоне видимости, сами собой отменялись первые два варианта (если честно, то с первым случаем в основном отсутствовали признаки моего желания ехать к каким-либо специалистам). Вернувшись на балкон я заметил пропажу виновника торжества, который оставил после себя только нежную печаль и внезапно обгаженную коробку. 
 Расслабившись и с чувством выполненного долга я пошел заварить себе чайку́.

,длиннопост,реактор помогающий,original content,живность,сокол


Как вдруг услышал странное шебуршание из соседней комнаты. И после минутных поисков грозный засранец был обнаружен в нижнем отделе открытого шкафа. 



При попытке его оттуда вытащить он издавал яростный писк и норовил вцепиться в перчатку.



 А ещё ему каким-то образом получилось прошмыгнуть мимо меня. И я пустился за ним в погоню.



 Всё же удача длиться вечно не может и произошло страшное: в коридоре беглец был замечен собаками. То что произошло далее может оставить неизгладимый след в психике впечатлительных людей.



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


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

Из такой уже родной коробки уже такой родной сокол как-то не хотел вылезать, но я придал ему немного смелости просто перевернув "домик", и аккуратно вытряхнул постояльца.


Ошарашенная наглостью второй раз за день пустельга проторчала в кустах (с пробежками до деревьев и обратно) 15 минут и улетела в закат (образно говоря).


История получилась более объёмной, чем я ожидал, и отняла в в разы больше времени, чем я рассчитывал.

А на сегодня всё, до новых встреч


Спасибо вам большое за помощь

Я обожаю это место. Некоторое время назад был опубликован пост с опросом по теме какая цветовая гамма лучше. Ваше мнение мне очень помогло, спасибо сладкие, вы великолепны :D
Скрин на 15:40 21 октября.

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

Обращайся.
Года три назад наткнулся на видос,в нём играла ахуенная песня(не русская) под нарезку из битвы при Минас Тирите и других крупных побоищь из фильма.Сам нигде найти не смог.Заранее спасибо.
,песочница,Арда,фэндомы,музыка,реактор помогающий
Здесь мы собираем самые интересные картинки, арты, комиксы, мемасики по теме реактор помогающий (+17 постов - реактор помогающий)