Comments 24
Во второй части статьи я напишу, как «своими руками» осуществить перепаковку из контейнера «264» в стандартный контейнер «avi».

однажды для какого-то китайского DVR делал примерно так с включением copy video stream
ffmpeg -i input.264 -c:v copy -c:a copy output.avi
если не срабатывало, то через winhex в файле отрезал заголовок до байтов 00 00 00 01
Расширение .264 обычно используется для битстрима видео, скодированного в H.264. Оно не может содержать аудио. В вашем случае, и в случае автора, использовался какой-то нестандартный контейнер, поддержка которого для вашего случая есть в ffmpeg.
Всё правильно. Нестандартный контейнер, корректная перепаковка в avi невозможна. Мне тоже советовали ffmpeg применить, мол, мощнейший инструмент, должен схватить. У меня не получилось. Пробовали специалисты, но без результатов. Результаты были, но не совсем корректные: звука не было, изображение рассыпалось. Поэтому я этим вопросом и занялся, о чём напишу во второй части.
Давно и тесно дружу с ffmpeg и, смею заверить, не было ещё случая, что-бы эта тулза не нашла в своем составе демуксера и/или кодека для разжевывания какого-либо формата, хоть потоковый RAW ему скорми он завсегда его верно рас(пере)кодирует. Главное уметь его сготовить(правильно скомпилировать;)
вы правы. на мой взгляд мне было проще (и интереснее) разобраться с контейнером и сделать свой перепаковщик, чем подгонять под это дело ffmpeg, с которым даже более продвинутые люди не смогли справиться (а я тем более, никогда не работал с ffmpeg).

Интересная статья, а код утащил, пригодится! Жду второй части!

Дык нужно определить количество элементов типа char, которое должна выделить new из кучи:
char* str = new char[количество];
В этой конструкции new выделяет памяти лишь под один символ, а вы по указателю функцией sprintf заливаете туда целую строку. Странно, что не выскакивает ошибка доступа к памяти, видимо компилятор что-то за Вас подправляет!
Наверно подправляет. Поэтому у меня и возникала всегда путаница именно с этим.
Странно, что не выскакивает ошибка доступа к памяти, видимо компилятор что-то за Вас подправляет!
Ничего он не подправляет. Просто результат выполнения программы зависит от «фазы луны». Сейчас работает, завтра — нет.
Работает. Но покажите, как правильно?
Про new char уже ответили.

Про остальное даже не знаю что сказать. Код ужасен до усрачки. Какие-то магические константы, работа с файлами через WinAPI и функции из stdio.h одновременно, Си вперемешку с С++, форматирование вырвиглазное.
Вы бы хоть одним файлом код выложили, тогда может быть я и показал как правильно или хотя бы немного грамотней его оформить.
У меня прежде всего стояла задача не написать красивый код, который бы всем понравился, а сделать рабочую программу, выполняющую требуемые функции. По поводу грамотного форматирования спорить не буду. Меня учили ещё со школы именно так, и я к этому привык.
Это конечно ваше дело, но я бы такое на показ выкладывать не стал.
Не сочтите за обиду или оскорбление, но, либо у вас в школе был плохой преподователь (а он, получается, такой и был), либо у вас отсутствует тяга к самообразованию.
Повторюсь, дело ваше.
Да, вы правы. Преподаватель в школе и в университете так и говорил: как вам удобнее, так и форматируйте. Тяга к самообразованию не сказать, что отсутствует, просто разные приоритеты. В следующий раз я, естественно, не буду выкладывать код, достаточно описывать только алгоритм.
В большинстве регистраторов при копировании видео на флешку в нижней части окна есть выбор типа файла (который многие на замечают): *.264 или *.avi. Но облегчения копирования больших объемов это не доставляет. Спасибо Людям поддерживающим китайские видеорегистраторы слова удобство и эргономика не известны.
Вчера выковыривал видео с noname авто видеорегистратора. Файлы в формате avi, но так и не подобрал кодеки, чтобы посмотреть видео. ТС, может поможешь?
После публикации второй части.
А когда она примерно будет?
Я бы с удовольствием взглянул.
выковыривал видео с noname авто видеорегистратора. Файлы в формате avi, но так и не подобрал кодеки, чтобы посмотреть видео

Уточните, что именно вы подразумеваете под «выковыривал»? Действия, подобные описанным в статье?

Если да, то как вы проверили, что вытащили данные правильно (хотя на автомобильных регистраторах это обычно проще, чем на стационарных) и дело именно в кодеке, а не в содержимом файлов?
Всё было проще, достал microSD, скопировал. Но не открывается ничего. Подбирал всевозможные кодеки. Подозреваю, что это не avi файлик а вполне себе контейнер yadi.sk/d/YVki4HTq3ammNt — ссылка на него
Only those users with full accounts are able to leave comments. Log in, please.