Я столкнулся с вероятной ошибкой в 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-меню, но я здесь просто размышляю.
Анализ файлов, которые не открываются, в отличие от тех, которые открываются нормально, показывает одну вопиющую проблему: все строки в 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.
, 0.
,100.
0.5
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. Исправьте это (т.е. обходной путь)
На нескольких веб-страницах упоминалось, что числовые форматы региональных настроек (особенно , и .) могут быть связаны с этой проблемой. После установки "." как десятичный разделитель, у меня снова не было этой проблемы.
крейс
ZuzannaSt