Перейти к содержимому


!!! Только у нас на форуме !!!
Спектакли от дяди Пчёлки

для просмотра необходима регистрация
Фотография
- - - - -

Программа для изменения частоты кадров


  • Please log in to reply
27 ответов в этой теме

#1 DiSel

DiSel
  • Модераторы
  • 1 541 Сообщений:

Отправлено 24 мая 2007 - 15:15

Идея написания программы вытекла из дискуссии о рассинхроне.
Аналогичные программы существуют давно, каждая хороша по-своему. Суть этой программы - замена информации в заголовке AVI-файла напрямую. Для тех, кому это что-то скажет: заменяются данные в позиция- 0x20h-0x21h, 0x80h-0x87h. Из этого вытекают следующие свойства:
1) не гарантируется полная поддержка всех существующих форматов (если информация хранится по другим адресам). Если считанные значения fps выглядят нереально - лучше закрыть программу;
2) не обновляется информация о чередовании потоков, из-за чего возникает рассинхронизации при воспроизведении в софтовых проигрывателях;
3) быстрое получение конечного результата - сколько вам потребуется времени, чтобы выбрать файл и нажать две кнопки?

Описание работы:
Файл можно выбрать, либо написать его путь в поле. Кнопка "Открыть" - считывается текущая информация о fps : промежуток между кадрами (поправлюсь, не в милли, а в микросекундах), делимое и делитель частоты кадров. Поясню последнее - совсем вылетело из головы, когда проделывал эксперимент. Частота кадров не всегда бывает целым числом, поэтому её значение приводится к рациональной дроби и записываются делимое и делитель. Понятно, что считав эти два больших числа и разделив одно на другое, получим реальное значение fps.
Вернусь к описанию. После считывания, выводится текущее значение интервала между кадрами, из него вычисляется fps (как 1000000/x) и записывается в скобках. Далее выводится значение fps, полученное из информации о видеопотоке.
Программа проверена второпях на частных случаях видеофайла с одним видеопотоком, поэтому не гарантирую, будет ли она работать с чем-то экзотическим, или нет.
Ещё существенный недофункционал: не хотелось связываться с приведением вещ.числа к дроби, поэтому считать можно какой угодно fps, а записать - только целые числа. Юзатели NTSC, простите меня.
Вобщем, вот тут:Прикрепленный файл  FrameRate.zip   216,26К   67 Количество загрузок:
  • 0

#2 Dick

Dick
  • Участник
  • 11 201 Сообщений:

Отправлено 24 мая 2007 - 15:45

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

"После этой проги посмотрел св-ва файла - стало 25.00 кадров\сек (вместо 25.01).... положил его на тайм-лайн АП6.5...
РАССИНХРОН ПРОПАЛ !
Для окончательной проверки с помощью СРС2 конвертировал этот файл в DVD-видео на всякий случай двумя способами:
1. с тайм-лайна АП6.5 и
2. напрямую через СРС2 (без АП6.5)
(видимо, СРС2 все равно откуда хватать исходник)
Результат: в обоих случаях рассинхрона на DVD-видео НЕТ !
Вывод: найден хороший инструмент правки рассинхрона.
  • 0

#3 CoolMask

CoolMask
  • Участник
  • 13 Сообщений:

Отправлено 27 ноя 2014 - 12:16

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


  • 0

#4 DiSel

DiSel
  • Модераторы
  • 1 541 Сообщений:

Отправлено 27 ноя 2014 - 16:17

Сначала ответил в личку, а потом увидел публичный вопрос.

Увы, не смогу. Давненько я не брал в руки шашек, да и руки постоянно заняты чем-то другим, так что программировать под win для меня очень нерентабельно. Можно попробовать обратиться на фриланс с описанием задачи, там наверняка найдутся люди, имеющие опыт работы с видео, да и навыки программирования под современные платформы у них наверняка побольше, чем у меня за последние 7 лет.


  • 0

#5 CoolMask

CoolMask
  • Участник
  • 13 Сообщений:

Отправлено 27 ноя 2014 - 17:41

Ок, спасибо, уже ищу.


  • 0

#6 Зос

Зос
  • Модераторы
  • 4 526 Сообщений:

Отправлено 27 ноя 2014 - 17:46

Спасибо! У меня вечная проблема со сгоном VHS. После 40 минут звук заметно убегает. В Премьере ставлю скорость звука 99,99%, тогда нормально. Сейчас открыл такой файл твоей программулиной - получилось 25,0199к/с. Исправил. Заново открыл его же -ровно 25!  Файлик правда короткий, 20 мин. Проверить пропал ли рассинхрон  не могу. Но думаю на больших будет нормально. Еще раз спасибо!!! :2vvko:


  • 0

#7 Dick

Dick
  • Участник
  • 11 201 Сообщений:

Отправлено 27 ноя 2014 - 19:00

Зос, on 27 Nov 2014 - 12:46, said:

После 40 минут звук заметно убегает. 

 

У кого как. У меня при захвате S-VHS платой АверМедиа рассинхрон становился заметен после 1 часа. Поэтому иногда, чтобы не морочиться, использовал простой совет - кэпчурил по часу, потом клеил. Если у тебя порог 40 минут, попробуй хватать по 40.


  • 0

#8 Зос

Зос
  • Модераторы
  • 4 526 Сообщений:

Отправлено 27 ноя 2014 - 19:21

А зачем? Спасибо Диме. И чего я раньше не видел эту тему...


  • 0

#9 Dick

Dick
  • Участник
  • 11 201 Сообщений:

Отправлено 27 ноя 2014 - 20:09

CoolMask, on 27 Nov 2014 - 07:16, said:

Уважаемый DiSel, не могли бы Вы сделать аналогичную программу для видео в формате MP4?

 

DiSel, on 27 Nov 2014 - 11:17, said:

Увы, не смогу. Давненько я не брал в руки шашек

 

Думал, у тебя такая же проблема с MP4, как и у Mask, для кот. нет программки.

Там, в его случае,  можно пробовать кэпчурить более короткими кусками (предположим, по часу), где не заметен рассинхрон, потом клеить.

 

Тогда этот совет Mask`y


  • 0

#10 CoolMask

CoolMask
  • Участник
  • 13 Сообщений:

Отправлено 05 дек 2014 - 15:32

Заглянул на один форум с фрилансерами по поводу заказа аналогичной проги для MP4- ууу, барыги, за полста тыщ говорят сделаем, надо спецификации изучать. Я говорю- чё я должен платить за ваше обучение чтоб вы мне потом разовую работку сделали? Да- говорят, ууу, барыги. Фигли, говорят, с твоими копейками связываться, когда можно нормальные бабки на курсачах по программированию для бестолковых студентов и на серьёзных прогах для предприятий делать. Забил. Нарезаю SolveigMM Splitter(ом) на кусочки по 5 минут и потом в премьер их, рассинхрон в таком случае не заметен. На 10 минутных кусках уже заметен- до 5-6 кадров доходит рассинхрон, плавает частота- почти во всех кусках получается разная в пределах 0,06 фпс, потому рассинхрон неравномерный. При том, что захватываю с частотой 60 в настройках, походу там на самом деле 59.94, т. к. в свойствах больше 59,94 ни на одном куске не показывает.


Сообщение отредактировано CoolMask: 05 дек 2014 - 15:56

  • 0

#11 nixa

nixa
  • Участник
  • 5 840 Сообщений:

Отправлено 05 дек 2014 - 18:57

CoolMask, бы не мог бы описать проблему, на каком этапе у тебя происходит рассинхрон

может проще не допускать рассинхрона, чем потом бороться с ним.


Сообщение отредактировано nixa: 05 дек 2014 - 19:37

  • 0

#12 Dick

Dick
  • Участник
  • 11 201 Сообщений:

Отправлено 05 дек 2014 - 19:28

--


Сообщение отредактировано Dick: 05 дек 2014 - 20:18

  • 0

#13 ILNIZ

ILNIZ
  • Участник
  • 531 Сообщений:

Отправлено 05 дек 2014 - 23:11

У меня была проблема с рассинхроном DV. Видео 3 часа LP DV через видеокамеру захватывал в монтажке EDIUS, как потом оказалось с кодеком от Canopusa, а монтировал Premier ом (6.5!) где используется кодек Microsoft DV. Убегало в конце и избавлялся нарезками и подгоном. После того случая, а произошло это 10 лет назад, придерживаюсь правила: захват видео в программе монтажа. Сейчас другие камеры и захват не нужен, но остались форматы файлов и кодеки. По моему, если заниматься видео всерьез, надо обнаружить причину этого рассинхрона, желательно как можно раньше, по моему несколько проб и проблема разрешится.

(!) для Dick а интересно заметит или нет..., но это была и моя любимая монтажка...


  • 0

#14 Dick

Dick
  • Участник
  • 11 201 Сообщений:

Отправлено 06 дек 2014 - 00:52

Дык, у очень многих наших АР6.5  был любимый. Я её еще для организации покупал по безналу за 1000$, а тогда это большие деньги были.

А начинал чуть ли не ... с пятерки (не помню уже)

 

А я думал, что все монтажки по IEE1394 хватают одинаково. (LP не LP д.б. без разницы, по-идее). 

В старых операционках всегда была встроенная монтажка МувиМейкер - ею можно было кэпчурить по IEE и без сторонних монтажек.

Почему у Эдика были проблемы с рассинхроном не совсем понятно.

 

У меня-то рассинхрон был при оцифровке S-VHS кассет, потому что там видео и аудио в недорогой плате захвата АверМедиа идут разными путями-проводами (может еще и потому, что плата любительского уровня, хотя хватала нормально по качеству, на четвёрочку)

Может были дорогие платы захвата аналога (типа ПРО) без рассинхрона, не знаю. 


Сообщение отредактировано Dick: 06 дек 2014 - 00:53

  • 0

#15 ILNIZ

ILNIZ
  • Участник
  • 531 Сообщений:

Отправлено 06 дек 2014 - 01:10

Даже если капчуришь АверМедией, но кодеком понятным, то проблем не должно быть. Именно нужно разобраться почему рассинхрон? Чтобы больше проблема не повторялось. Каждый раз править? Программу коррекции запустить? Зачем?

Определиться с видео аудио. Характеристики. MP4 в чём хватаем, смена контейнера авидемуксом делает видео не читаемым, может просто не хватает кодеков в системе. 


  • 0

#16 CoolMask

CoolMask
  • Участник
  • 13 Сообщений:

Отправлено 08 дек 2014 - 21:45

Dick, on 05 Dec 2014 - 19:52, said:

Дык, у очень многих наших АР6.5  был любимый. Я её еще для организации покупал по безналу за 1000$, а тогда это большие деньги были.

А начинал чуть ли не ... с пятерки (не помню уже)

 

А я думал, что все монтажки по IEE1394 хватают одинаково. (LP не LP д.б. без разницы, по-идее). 

В старых операционках всегда была встроенная монтажка МувиМейкер - ею можно было кэпчурить по IEE и без сторонних монтажек.

Почему у Эдика были проблемы с рассинхроном не совсем понятно.

 

У меня-то рассинхрон был при оцифровке S-VHS кассет, потому что там видео и аудио в недорогой плате захвата АверМедиа идут разными путями-проводами (может еще и потому, что плата любительского уровня, хотя хватала нормально по качеству, на четвёрочку)

Может были дорогие платы захвата аналога (типа ПРО) без рассинхрона, не знаю. 

Я с VHS Behold(ом) H6 хватал, собственную свадьбу оцифровывал, кстати, как оказалось,  неплохо сохранилась запись, 12 лет лежала. Хватал каким-то лосслес кодеком, не помню уже каким, AVI файл огромный получился- 3часа- 200 гигов, но с заделом на обработку и монтаж, с полями (полукадрами), в общем всё отлично и без рассинхрона (в т. ч. если в премьер кидать). С помощью премьера и энкора забацал неплохой DVD фильм.


nixa, on 05 Dec 2014 - 13:57, said:

CoolMask, бы не мог бы описать проблему, на каком этапе у тебя происходит рассинхрон

может проще не допускать рассинхрона, чем потом бороться с ним.

Проблема скорее всего железячная. Ну, я, как бы летсплеер. Хватаю игровое видео видеокартой GTX 670 Jetstream с помощью нвидиевской проги Shadowplay, есть под это дело в современных видюхах нвидии аппаратный кодер H.264 и вышеназванный софт в комплекте с дровами. Единственный способ захвата, который у меня при записи не сажает фпс в играх, почти совсем не сажает- всего на 1-2%, есть лицензии на пару других популярных прог для этого, но не пользуюсь- просадки фпс критичные, так что даже не предлагайте перейти на другой известный софт- всё перепробовал. Захват идёт в MP4 (H.264). Всё гуд, в захваченном видео, при воспроизведении в любых плеерах на винде, рассинхрона нет, кладу на таймлайн в премьере- рассинхрон, после экспорта рассинхрон, естественно,  закрепляется в конечном продукте. Остальное я уже описал.


ILNIZ, on 05 Dec 2014 - 20:10, said:

Даже если капчуришь АверМедией, но кодеком понятным, то проблем не должно быть. Именно нужно разобраться почему рассинхрон? Чтобы больше проблема не повторялось. Каждый раз править? Программу коррекции запустить? Зачем?

Определиться с видео аудио. Характеристики. MP4 в чём хватаем, смена контейнера авидемуксом делает видео не читаемым, может просто не хватает кодеков в системе. 

Кодеков достаточно для любого случая, предполагаю что это из-за неполной совместимости AVI с H.264.

 

Открыл файл в медиаинфо, и вот что смутило: Режим частоты кадров                     : Переменный

Не в этом ли проблема? Но если в этом, то исправить не получится, да и в любом случае не получится, параметры захвата в Shadowplay не настраиваются, есть только выбор битрейта до 50 mbps с шагом в 10, и две частоты кадров-30 и 60 fps.

Если только кто нибудь не сможет влезть в код и модифицировать его.


Сообщение отредактировано CoolMask: 08 дек 2014 - 22:07

  • 0

#17 nixa

nixa
  • Участник
  • 5 840 Сообщений:

Отправлено 09 дек 2014 - 02:38

CoolMask, on 08 Dec 2014 - 16:45, said:

Хватаю игровое видео

 

к сожалению, здесь я - пасс

никогда не имел дел с "игрушками"


  • 0

#18 DiSel

DiSel
  • Модераторы
  • 1 541 Сообщений:

Отправлено 09 дек 2014 - 10:13

CoolMask, on 08 Dec 2014 - 16:45, said:

вот что смутило: Режим частоты кадров                     : Переменный

Не в этом ли проблема? 

С самого начала было такое подозрение. Для h264 это нормальное явление, и проигрыватели с этим умеют справляться. 

Premiere какой версии? Можешь выложить видео в исходном виде, с указанием, где ждать рассинхрон?


  • 0

#19 CoolMask

CoolMask
  • Участник
  • 13 Сообщений:

Отправлено 09 дек 2014 - 15:09

DiSel, on 09 Dec 2014 - 05:13, said:

С самого начала было такое подозрение. Для h264 это нормальное явление, и проигрыватели с этим умеют справляться. 

Premiere какой версии? Можешь выложить видео в исходном виде, с указанием, где ждать рассинхрон?

Premiere Pro CC 2014, когда пользовался CS6 тоже замечал рассинхрон, но он был незначительный, когда я им пользовался, ютуб не поддерживал воспроизведение с 60 fps, и я захватывал в 30 fps, а с такой частотой рассинхрон почему-то почти не заметен, и я над этим не заморачивался. В исходном виде... вечером залью кусок на яндекс диск, весит дофига, Full HD 60 fps с 30-40 mbps всё таки. Вот политика адоба в этом плане не понятна, вроде премьер серьёзный продукт, а получается что не учитывает переменную частоту кадров исходника.


Сообщение отредактировано CoolMask: 09 дек 2014 - 15:16

  • 0

#20 jurisviii

jurisviii
  • Участник
  • 3 641 Сообщений:

Отправлено 09 дек 2014 - 15:27

Переменная частоста кадров принципиально недопустима для любого монтажа. Соответствужщий аналог в монтажных программах - Dropped frames.


Сообщение отредактировано jurisviii: 09 дек 2014 - 15:29

  • 0

#21 CoolMask

CoolMask
  • Участник
  • 13 Сообщений:

Отправлено 09 дек 2014 - 15:46

jurisviii, on 09 Dec 2014 - 10:27, said:

Переменная частоста кадров принципиально недопустима для любого монтажа. Соответствужщий аналог в монтажных программах - Dropped frames.

Слышал, но не задумывался почему. Ещё слышал, что в сони вегас не возникает рассинхрон по этой причине. Проблема распространённая, и некоторые на него перешли с премьера только поэтому, но я не хочу.


Сообщение отредактировано CoolMask: 09 дек 2014 - 15:48

  • 0

#22 jurisviii

jurisviii
  • Участник
  • 3 641 Сообщений:

Отправлено 09 дек 2014 - 16:46

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


  • 0

#23 CoolMask

CoolMask
  • Участник
  • 13 Сообщений:

Отправлено 09 дек 2014 - 19:21

В общем я понял что Premiere Pro направлена прежде всего на профессиональных потребителей с профессиональным оборудованием и устаревшими стандартами, и пока не собирается что-то менять в этом плане, по крайней мере в отношении переменной частоты кадров. Будем надеяться что под натиском требований общественности что-то сдвинется http://forums.adobe....rt=120&tstart=0 Кстати, там пишут что афтер нормально работает с переменной частотой кадров и предложен вариант сделать проект в афтере, импортировать его в премьер и потом уже работать. Надо попробовать.


Сообщение отредактировано CoolMask: 09 дек 2014 - 19:24

  • 0

#24 CoolMask

CoolMask
  • Участник
  • 13 Сообщений:

Отправлено 09 дек 2014 - 23:02

DiSel, on 09 Dec 2014 - 05:13, said:

Можешь выложить видео в исходном виде, с указанием, где ждать рассинхрон?

http://yadi.sk/i/a3wgaUscdGK4j Вот кусок исходника, отрезал прогой SolveigMM Video Splitter без пережатия. При просмотре в wmp на отметке 25 минут 24 секунды звук и изображение синхронны. В премьере в этом моменте звук опережает видео на 44 кадра- звук на 91089 кадре, а соответствующая ему картинка появляется на 91133 кадре.


  • 0

#25 CoolMask

CoolMask
  • Участник
  • 13 Сообщений:

Отправлено 06 фев 2015 - 12:48

   Теперь пользуюсь ffmpeg для преобразования переменного фреймрейта в mp4 h.264 в постоянный, на выход задаю те же параметры что и в исходнике, только ставлю нужный постоянный фреймрейт. Потерь в качестве на глаз не заметно даже после последующей обработки в премьере и заливки на ютуб. То есть- что сразу обработать исходник в премьере и залить на ютуб, что предварительно в ffmpeg перекодировать потом в премьер потом на ютуб- в итоге качество картинки на глаз не отличается. А рассинхронов как не бывало.

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

   И если это так, то возник вопрос- возможно ли создать программу, которой в mp4 h.264 можно проделать эти операции без затрагивания битрейта, то есть фактически без перекодировки в общепринятом значении этого слова, чтобы эта прога проделывала только операции, описанные в предыдущем абзаце? А то в ffmpeg всё равно надо указывать битрейт для выходного видео, а значит он перерабатывает и визуальную информацию каждого кадра, и даже если визуально изменение качества не заметно, оно всё равно падает. Ну и время на перекодировку уходит. Или может можно задать такие параметры для ffmpeg, при которых он будет выполнять только операции, описанные в предыдущем абзаце? Или может есть другие программы, умеющие именно это?

  Кто шарит в этих вопросах, тот наверное понял меня). Яснее и проще сформулировать не могу).


Сообщение отредактировано CoolMask: 06 фев 2015 - 13:46

  • 0

#26 DiSel

DiSel
  • Модераторы
  • 1 541 Сообщений:

Отправлено 08 фев 2015 - 23:14

CoolMask, on 06 Feb 2015 - 07:48, said:

Моё предположение- ...где фреймрейт выше заданного- кадры выкидываются, где ниже-дублируются.

Вполне разумный вариант.

CoolMask, on 06 Feb 2015 - 07:48, said:

И если это так, то возник вопрос- возможно ли создать программу, которой в mp4 h.264 можно проделать эти операции без затрагивания битрейта, то есть фактически без перекодировки в общепринятом значении этого слова, чтобы эта прога проделывала только операции, описанные в предыдущем абзаце? ... Или может можно задать такие параметры для ffmpeg, при которых он будет выполнять только операции, описанные в предыдущем абзаце? Или может есть другие программы, умеющие именно это?

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


  • 0

#27 CoolMask

CoolMask
  • Участник
  • 13 Сообщений:

Отправлено 10 фев 2015 - 12:55

Мда, чем дальше, тем понятнее что h.264 разрабатывался только для конечного сжатия. Трудности его обработки никого не волновали. Ну и для какого чёрта напихали его аппаратные кодеры во всевозможные устройства захвата, при чём в некоторых из них это едиственно возможный выходной формат. Всем спасибо.


Сообщение отредактировано CoolMask: 10 фев 2015 - 13:03

  • 0

#28 DiSel

DiSel
  • Модераторы
  • 1 541 Сообщений:

Отправлено 10 фев 2015 - 22:15

CoolMask, on 10 Feb 2015 - 07:55, said:

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

Сравни поток, который нужен для h264 и для несжатой картинки. Увеличить полосу пропускания в аппарате порой стоит очень дорого. Аппаратная реализация - разгрузка ЦП для других нужд. Так что цели производителей вполне понятные, и забота об экономии ~1% конечных пользователей, которым потребуется сэкономить на перекодировании, в их список задач не входит. Обычная маркетинговая дилема - экономия копейки в своём кармане приводит к затратам многих рублей в другом кармане.


  • 0


1 человек читают эту тему

0 пользователей, 1 гостей, 0 скрытых пользователей

SpyLOG SpyLOG Rambler's Top100