Premiere Elements «Событие отладки»: ошибка ключевого кадра

Я столкнулся с вероятной ошибкой в ​​Premiere Elements 10, и, к счастью, я также нашел обходной путь, поэтому я написал свой собственный ответ ниже. Но поскольку мне не удалось решить основную проблему, я был бы очень рад получить дополнительные идеи о том, как решить проблему. Теперь вот вопрос:

Как восстановить файл проекта Premiere Elements (.prel), который невозможно открыть из-за следующей ошибки:

Premiere Elements Debug Event
Premiere Elements has encountered an error:
[d:\pre\mediacore\mediafoundation\api\inc\Keyframe/Keyframe.h-142]

Эта ошибка время от времени возникает в версиях Windows, отличных от США. Во время сеанса редактирования нет никаких предварительных указаний на то, что что-то может быть не так (сохранения и автосохранения работают нормально), но при следующем перезапуске проект не может быть открыт. Другие проекты, похоже, не пострадали.

По словам других пользователей, которые видели ту же ошибку (погуглите «premiere debug keyframe», и вы найдете несколько), может быть какая-то связь с введением в проект DVD-меню, но я здесь просто размышляю.

Ответы (2)

Анализ файлов, которые не открываются, в отличие от тех, которые открываются нормально, показывает одну вопиющую проблему: все строки в project.prelфайле (который является просто XML-файлом), где должны быть десятичные числа <StartKeyframe>или <Keyframe>теги, повреждены. Пример:

Правильная версия:

<StartKeyframe>-91445760000000000,100.,0,0,0.,0.,0.,0.</StartKeyframe>

Дефектная версия:

<StartKeyframe>-91445760000000000,100,,0,0,0,,0,,0,,0,</StartKeyframe>

Таким образом, очевидно, что Premiere Elements в какой-то момент запутались в настройках европейской локали и решили сохранить десятичные значения, используя европейский десятичный разделитель (запятая) вместо десятичного разделителя США (точка). Конечно, тогда невозможно снова правильно открыть этот файл.

.prelК счастью, по крайней мере, в моих тестах в файлах есть только три вида десятичных значений :

  1. целые числа с плавающей запятой: 1., 0.,100.
  2. единственное значение0.5
  3. поплавки двойной точности: 0.16666666666666666,1.000000000000000000000000

Это позволяет исправить файл с помощью регулярного выражения replace. Если ваш редактор поддерживает регулярные выражения в стиле Perl, вы можете искать

,(?:(?=[,<]|\d{10})|(?<=\b0,)(?=5\b))

и заменить все на

.

Это заменит все ошибочные десятичные запятые (т.е. те, за которыми следует другая запятая, открывающая угловая скобка, десятичная дробь не менее 10 цифр или число 5 (но только если этой запятой предшествует одиночная цифра 0) ) с десятичной точкой.

После этого (перед этим обязательно сделайте резервную копию вашего .prelфайла!), файл снова можно будет корректно открыть. Однако, как только он снова сохраняется, ошибка снова появляется.

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


Один намек на то, в чем может быть основная проблема: примерно в то время, когда была введена ошибка, Premiere спонтанно открыл небольшое диалоговое окно, в котором говорилось (на немецком языке) что-то вроде

"Premiere Elements is updating a component. Information is being transmitted..."

Пока отображалось это окно, появилось два окна Win7 UAC с просьбой разрешить Windows Regserver обновить мою систему. Фактические команды, для которых требовалось одобрение, были

C:\Windows\System32\regsvr32.exe /s 
   "C:\Program Files\Adobe\Adobe Premiere Elements 10\mc_dec_mpa_ds.ax" 
   "C:\Program Files\Adobe\Adobe Premiere Elements 10\mc_dec_mp2v_ds.ax"

и

C:\Windows\SysWOW64\regsvr32.exe /s 
   "C:\Program Files\Adobe\Adobe Premiere Elements 10\32\mc_dec_mpa_ds.ax" 
   "C:\Program Files\Adobe\Adobe Premiere Elements 10\32\mc_dec_mp2v_ds.ax"

(разрывы строк вставлены для ясности).

В первый раз я позволил эти действия (что, оглядываясь назад, могло оказаться плохой идеей...); теперь это происходит каждый раз, когда я пытаюсь открыть "исправленный" файл проекта. Неважно, разрешаю я это сейчас или отказываюсь — в любом случае Premiere пишет поврежденный файл проекта, когда я сохраняю свой проект.

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

1. Восстановить поврежденные файлы

Я нашел это онлайн-приложение очень полезным.

http://www.vibait.com/software/premiere-fix-keyframe.h-142/

Просто загрузите файл Premiere Elements, и взамен вы получите исправленную версию. Сохраните его себе на диск и откройте.

С одним файлом я несколько раз получал сообщения об ошибках, подобные этому:

Ошибка синтаксического анализа в строке 1431. Ожидалось 8 значений, получено 9

Старое значение: 116050644638,87,5,0,0,25,791250419642971,0,16666666666666666,1,2731148504048133,0,16666666666666666

Новое значение: 116050644638,87,5,0,0,25,791250419642971,0,16666666666666666,1,2731148504048133,0,16666666666666666.

Используя редактор, я искал некоторые из упомянутых чисел в файле XML и просто очистил элемент XML (удалив все числа).

2. Исправьте это (т.е. обходной путь)

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