-
@
bbcby, Я уже разобрался и с аспектом ратио и то что форматы должны быть одинаковые, не знаю только чем кодировать видео для ПИП. Нужен профиль формата level 3.2, поэтому я кодировал Carbon Coder-ом, там можно настроить это, но он похоже создает корявые видео файлы, которые чем то не нравятся Сценаристу. Может подскажете прогу для этого дела.
-
@
maks8881, через
Command Line,
x264.exe, я лично другим
вообще не пользуюсь.
Secondary Stream, PAL
Код:
x264 --bitrate 4000 --preset veryslow --tune film --bluray-compat --vbv-maxrate 8000 --vbv-bufsize 8000 --level 3.2 --keyint 25 --open-gop --ref 5 --tff --colorprim "bt470bg" --transfer "bt470bg" --colormatrix "bt470bg" --sar 16:11 --pass 1 -o out.264 input.file
x264 --bitrate 4000 --preset veryslow --tune film --bluray-compat --vbv-maxrate 8000 --vbv-bufsize 8000 --level 3.2 --keyint 25 --open-gop --ref 5 --tff --colorprim "bt470bg" --transfer "bt470bg" --colormatrix "bt470bg" --sar 16:11 --pass 2 -o out.264 input.file
или через пакетный файл, *.cmd:
Скрытый текст
@Echo Off
Title Secondary Stream, PAL
Color 08
Echo Please Wait...
Echo.
set output=.\
For /F "tokens=*" %%F In ('dir /b /o:n *.avs') Do Call :Coding "%%F"
Exit
:Coding
Echo 1st Pass for %~1...
start /b /low /wait /i x264 --bitrate 4000 --preset slow --tune film --bluray-compat --vbv-maxrate 8000 --vbv-bufsize 8000 --level 3.2 --keyint 25 --open-gop --ref 5 --tff --colorprim "bt470bg" --transfer "bt470bg" --colormatrix "bt470bg" --sar 16:11 --pass 1 -o "%~n1.264" "%1%"
Echo 2nd Pass for %~1...
start /b /low /wait /i x264 --bitrate 4000 --preset slow --tune film --bluray-compat --vbv-maxrate 8000 --vbv-bufsize 8000 --level 3.2 --keyint 25 --open-gop --ref 5 --tff --colorprim "bt470bg" --transfer "bt470bg" --colormatrix "bt470bg" --sar 16:11 --pass 2 -o "%~n1.264" "%1%"
::del /q /f *.mbtree; *.stats; *.log
::superfast
::veryfast
::faster
::fast
::medium
::slow
::slower
::veryslow
::placebo
[свернуть]
На входе файл(ы) *.
AVS
-
-
Одно понял, PIP для меню (он же попап) не годится, слишком много косяков. При переключении по главам основного видео, PIP кратковременно пропадает. К тому же Arcsoft TMT и Dune 4K Pro не поддерживают PIP, только PowerDVD. Если и делать что-то подобное, то только с PNG на весь экран и вырезом для масштабируемого видео, как я и описал раньше. На будущее скажите, что такое Trick playing в настройкаж PIP, для чего он, и если я изменил настройки Scaling в PIP, то заново муксить диск надо, потому что после компиляции Jar с новыми настройками ничего не меняется.
-
Про Trick playing лучше в теме сценариста спросить. В BDS тупо выведено то что доступно в сценаристе, а что это и зачем я, честно говоря, без понятия. В хелпе сценариста что-то странное написано.
Изменение чего либо в ПИП - естественно нужно перекомпилировать диск, т.к. это в структуре диска все прописано.
-
Подскажите, пожалуйста, как запретить переключение по главам с помощью кнопок NEXT и PREV на пульте. Пробовал сделать запрет в switch custom - !isPlaylist('Movie name') - [prev chapter] и [next chapter], не сработало. Делал switch в Common/Remote control buttons/Next track и Prev track. Если есть возможность сделать запрет и на переключение аудио дорог с помощью пульта, то тоже подскажите.
-
Скажите, если в настройках Playlistа - Disabled actions/Custom сделал изменения, то надо заново муксить диск? И влияют ли эти настройки, касающиеся переключения по главам, переключение аудио и перемотки, на операции в проекте, или они влияют только на действия с пульта?
-
Цитата:
как запретить переключение по главам с помощью кнопок NEXT и PREV
свойства муви -> Disabled actions
Цитата:
если в настройках Playlistа - Disabled actions/Custom сделал изменения, то надо заново муксить диск?
да
Цитата:
влияют ли эти настройки, касающиеся переключения по главам, переключение аудио и перемотки, на операции в проекте, или они влияют только на действия с пульта?
только на операции с пульта
-
Цитата:
свойства муви -> Disabled actions
Диск перемуксил, но вызов Top Menu все равно работает и BDS говорит что не возможно отключить эту опцию для Плейлиста. Я никак не могу понять что надо сделать чтобы отключить вызов Top Menu, ведь если эта опция есть в свойствах муви -> Disabled actions, значит при каких то условиях она должна работать. В мануале не нашел ответа. Не хотелось бы тупо оставить Top Menu пустым.
-
Вызов топ меню можно заблокировать только для интро (начальных муви, которые запускаются перед меню), т.к. блокируется оно на уровне тайтла (в хелпе это описано).
-
Подскажите, кто знает. У меня в меню глав (он же попап) установлен switch на action every second, для того чтобы при достижении нужного плеймарка выделялась нужная кнопка/select button:
SWITCH custom - if [Chapter (Movie) = № плеймарка -> button.....
Можно ли упростить команду с тем же эффектом?
-
Хочу в концертнике сделать фишку, чтобы можно было добавить треки в "избранное" а потом проиграть их. В принципе такое возможно? Если возможно, то подскажите в каком направлении идти.
-
По хорошему - в направлении программирования. Но в переменных (UDV) сейчас все-равно нет массивов/списков.
Более простой вариант: если исходить из того что общее число треков известно, наример их 30, то можно использовать GPR. Например резервируем GPR с 1 по 30 под фдаги "трек выбран": 1 - выбран, 0 - пропустить.
GPR[100] например режим проигрывания: 0 - обычный, 1 - проигрываем избранное.
При добавлении в избранное ставим 1 в нужном GPR. При проигрывании: при проходе каждой главы, если GPR[100] = 1 и GPR[номер главы] = 1 - проигрываем. Если GPR[номер главы] = 0, то ищем в GPR следующий с 1 и переходим на чаптер.
Еще придется делать интерфейс удаления из избранного - страницу с полным списком треков и показом галочки исходя из номера GPR.
-
Спасибо за подробный ответ, и по идее на этом можно мне основываться чтобы воплотить задуманное в жизнь, но я с GPR никогда не сталкивался и в мануале об этом очень неопределенно сказано. Поэтому вопрос: что значит если GPR[100], для каждого видео, или отрезка видео, он разный?
-
Нет. GPR это просто массив целочисленных значений (чисел). Что туда записали - то там и будет. Я имею ввиду что при запуске на проигрывание муви нужен какой-то флаг, чтобы определять мы играем целиком или только избранное. Вот в примере флаг записывается и читается из GPR[100].
-
А как добавлять то? Я пробую сделать switch -> Selected/button - MA:GPR[100]=GPR[1]/и move to для галочки. И так далее для каждой кнопки.
Я в правильном направлении? А то я ооооооочень не уверен.
Switch делаю на синей кнопке пульта меню треклиста.
-
Добавлять в избранное?
Это смотря где. Если добавлять при просмотре муви текущий трек, то проще всего скриптом
Код:
manager.setGPR(manager.getCurrentChapter(), 1);
А вот в если в меню ставить/снимать галочку при добавлении/удалении, то это сложнее. Я бы наверное делал так:
1) Делаем 30 галочек (если всего 30 треков).
2) При нажатии синей кнопки (добавить) свич, в котором на каждое условие мультиэкшен: установить GPR, переместить соответствующую галку (Flag ...) из-за пределов экрана в нужную позицию:
if Selected Menu Favorites [track 1] -> MA: [set]: GPR[1] = 1, [prop]: [Flag 1] move to (200, 100)
if Selected Menu Favorites [track 2] -> MA: [set]: GPR[2] = 1, [prop]: [Flag 2] move to (200, 120)
...
if Selected Menu Favorites [track 30] -> MA [set]: GPR[30] = 1, [prop]: [Flag 30] move to (200, 700)
3) Для удаления аналогично, только 0 вместо 1 в GPR помещаем и перемещаем соответствующую галку (Flag ...) за пределы экрана
Но проще пункты 2 и 3 сделать кодом. Сделать первое условие, конвертировать в скрипт и продублировать меняя цифры. Для добавления должно получится что-то типа такого:
Код:
if (manager.isButtonSelected("F:MM_Favorites.assembly", "F:MM_Favorites.Track_1.Selected")) {
manager.setGPR(1, 1);
manager.moveToXY("F:MM_Favorites.Flag_1", 200, 100);
}
if (manager.isButtonSelected("F:MM_Favorites.assembly", "F:MM_Favorites.Track_2.Selected")) {
manager.setGPR(2, 1);
manager.moveToXY("F:MM_Favorites.Flag_2", 200, 100);
}
...
Ну и перед входом в меню нужно переместить все галки в нужные места. Опять же проще кодом:
Код:
if (manager.getGPR(1) == 1) {
manager.moveToXY("F:MM_Favorites.Flag_1", 200, 100);
} else {
manager.moveToXY("F:MM_Favorites.Flag_1", -200, 100);
}
if (manager.getGPR(2) == 1) {
manager.moveToXY("F:MM_Favorites.Flag_2", 200, 100);
} else {
manager.moveToXY("F:MM_Favorites.Flag_2", -200, 100);
}
...
-
@
CDK, Огромное Спасибо за помощь.
-
@
CDK, Ну и перед входом в меню нужно переместить все галки в нужные места. Опять же проще кодом:
Код:
if (manager.getGPR(1) == 1) {
manager.moveToXY("F:MM_Favorites.Flag_1", 200, 100);
} else {
manager.moveToXY("F:MM_Favorites.Flag_1", -200, 100);
}
if (manager.getGPR(2) == 1) {
manager.moveToXY("F:MM_Favorites.Flag_2", 200, 100);
} else {
manager.moveToXY("F:MM_Favorites.Flag_2", -200, 100);
}
...
Я правильно понимаю, в switch, преобразованный в скрипт, это будет тоже самое?:
Скрытый текст
int streamId = 0;
int chapterId = manager.getCurrentChapter();
int curPlayListID = manager.getPlaylistID();
boolean canExec = true;
if (canExec && (manager.getGPR(1)==1)) {
canExec = false;
manager.moveToXY("F:MM_Favorites.01", 1499, 115);
}
if (canExec && (manager.getGPR(1)==0)) {
canExec = false;
manager.moveToXY("F:MM_Favorites.01", -26, 115);
}
if (canExec && (manager.getGPR(2)==1)) {
canExec = false;
manager.moveToXY("F:MM_Favorites.02", 1854, 160);
}
if (canExec && (manager.getGPR(2)==0)) {
canExec = false;
manager.moveToXY("F:MM_Favorites.02", -26, 160);
}
manager.UpdateCurrent_MM_Favorites.();
[свернуть]
-
Да. Просто строки
Код:
int streamId = 0;
int chapterId = manager.getCurrentChapter();
int curPlayListID = manager.getPlaylistID();
не нужны (можно удалить)
-
@
CDK, GPR[100] например режим проигрывания: 0 - обычный, 1 - проигрываем избранное.
Извините, но я не пойму куда записывать режимы проигрывания.
И если установить флажки в меню, которое попап на самом деле, то в другом попап флажки не показываются, и не показываются нигде, если заново запустить диск. На сколько я понимаю, нужно записать данные в UDV. Только какие? В мануале и хэлпе одинаково, не разъясняется это.
-
Цитата:
Извините, но я не пойму куда записывать режимы проигрывания.
В моем примере - в GPR[100]
при запуске обычного просмотра пишем туда 0
при запуске просмотра избранного только - пишем туда 1
и проверяем этот GPR[100] в каждом чаптере вместе с GPR[номер чаптера]
Цитата:
И если установить флажки в меню, которое попап на самом деле, то в другом попап флажки не показываются,
Да. В каждом меню объекты свои. Если у Вас более одного меню с избранным - придется двигать во всех. Но зачем их более 1?
Цитата:
не показываются нигде, если заново запустить диск
Чтобы оно сохранялось - сохранять его придется вручную. Ни GPR, ни UDV в сторадж не пишутся.
Т.е. при каждом изменении избранного (изменении значения GPR[1]...GPR[30]) нужно его записывать в сторадж, например:
первый трек добавили
Код:
manager.setGPR(1, 1);
manager.storeData('GPR1', 1);
второй трек удалили
Код:
manager.setGPR(2, 0);
manager.storeData('GPR2', 0);
и потом при старте диска восстанавливать
Код:
manager.setGPR(1, manager.readDataInt('GPR1'));
manager.setGPR(2, manager.readDataInt('GPR2'));
...
manager.setGPR(30, manager.readDataInt('GPR30'));
-
Возникла проблема из-за добавления команд на кнопки пульта next и prev плейлиста муви. На просто муви (тоже видео что и в плейлисте) появились проблемы которые заключаются в том что при переключении next на любом чаптере может перескочить на второй чаптер (только). Проявляется это если заново запустить диск или зайти в меню и обратно в муви, хотя команды на next и prev просто муви я не давал. Сделал конкретные команды на next и prev, конкретный чаптер -> конкретный плеймарк в виде свича кустом, но косяк остался. Может ли быть причиной Сценарист, в котором я собирал диск? У меня v.5.3.2. Этот косяк проявлялся и на много ранее, из-за чего я отказался в свое время делать команды на next и prev некоторых попап. Ничего таково на втором чаптере нету.
Второй вопрос: Как сделать запрет на анимацию или просто не допустить анимацию меню/попап за которой идет переход на избранное, если нет в избранном ничего?
Я пробовал сделать так: if (GPR(2-16)=1-> анимация
не происходит ничего, даже если есть избранные.
-
По поводу next/prev - пришлите проект (файл проекта + графика).
По поводу анимации - про какую анимацию идет речь? Анимация при нажатии на кнопку? В лоб запретить ее нельзя. Можно эту анимацию + действие перенести во входную анимацию и на кнопке сделать свич с одним условием - если переходить можно - прыгаем на входную анимацию и дальше уже перейдем. Также можно попытаться кнопку с автоэкшеном использовать вместо входной анимации.
-
Подскажите пожалуйста код, который позволяет активировать определенное меню, если проигрываемый chapter значится как GPR=1. У меня не получается сделать это в switsh, чтобы посмотреть как это будет выглядеть в скрипте. Если это возможно конечно.
-
А что вы подразумеваете под
Цитата:
если проигрываемый chapter значится как GPR=1
?
Номер проигрываемого чаптера находится в GPR[1]?
Если да, то внутри муви самое простое:
Код:
manager.jumpPlayMark(manager.getGPR(1) - 1);
Если запуск из меню, то:
Код:
manager.setStartPlayMark(manager.getGPR(1) - 1);
manager.activateSegment("S:MV_CONCERT.play_movie");
"- 1" везде, т.к. плеймарки с 0 нумеруются.
-
Цитата:
А что вы подразумеваете под
Сообщение от maks8881
если проигрываемый chapter значится как GPR=1
?
Если проигрываемый в данный момент чаптер уже отмечен как GPR=1.
Цитата:
Если да, то внутри муви самое простое:
Код:
manager.jumpPlayMark(manager.getGPR(1) - 1);
Мне вообще-то совсем другое надо. Мне нужно чтобы при нажатии на определенную кнопку пульта во время воспроизведения видео, чтобы всплывало определенное меню, если этот чаптер уже отмечен как GPR=1.
-
Т.е. если в массиве GPR для чаптера N уже выставлена 1: GPR[N]=1?
А если при этом GPR[N-1] = 1 и GPR[N+1] = 1, то что должно быть? открыть можно только одно меню.
Если вам надо смотреть по самому последнему отмеченному 1 (по самому большому N), то, если максимальное чисо чаптеров 30 - делаем на этой кнопке эксклюзивный (важно) свич:
if (GPR[30] = 1) -> Jump POPUP ...
if (GPR[29] = 1) -> Jump POPUP ...
...
if (GPR[1] = 1) -> Jump POPUP ...
т.е. условия в обратном порядке.
-
Сперва я пробовал сделать так:
Скрытый текст
........
if (canExec && (manager.getChapter('CONCERT')==5)) {
canExec = false;
manager.moveToXY("F:PM_MENU_TRACK.05", 1873, 295);
manager.moveToXY("F:PM_POPUP_TRACK.05", 1873, 295);
manager.moveToXY("F:PM_POPUP_TRACK_3.05", 1873, 295);
manager.setGPR(5, 1);
manager.activateSegment("S:PM_05.animate1");
manager.storeData("GPR5", 1);
}
if (canExec && (manager.getGPR(5)==1)) {
canExec = false;
manager.activateSegment("S:PM_been_added.animate1");
}
if (canExec && (manager.getChapter('CONCERT')==6)) {
canExec = false;
manager.moveToXY("F:PM_MENU_TRACK.06", 1835, 340);
manager.moveToXY("F:PM_POPUP_TRACK.06", 1835, 340);
manager.moveToXY("F:PM_POPUP_TRACK_3.06", 1835, 340);
manager.setGPR(6, 1);
manager.activateSegment("S:PM_06.animate1");
manager.storeData("GPR6", 1);
}
if (canExec && (manager.getGPR(6)==1)) {
canExec = false;
manager.activateSegment("S:PM_been_added.animate1");
}
........
[свернуть]
потом попробовал создать UDFы из
........
if [GPR(5)=1]->Popup: been added [anim/act 1] - один UDF
if [GPR(6)=1]->Popup: been added [anim/act 1] - другой UDF
.......
преобразовав в скрипты и вставил их так:
Скрытый текст
.......
if (canExec && (manager.getChapter('CONCERT')==5)) {
canExec = false;
manager.moveToXY("F:PM_MENU_TRACK.05", 1873, 295);
manager.moveToXY("F:PM_POPUP_TRACK.05", 1873, 295);
manager.moveToXY("F:PM_POPUP_TRACK_3.05", 1873, 295);
manager.setGPR(5, 1);
manager.activateSegment("S:PM_05.animate1");
manager.storeData("GPR5", 1);
manager.UDF_05_ADD();
}
if (canExec && (manager.getChapter('CONCERT')==6)) {
canExec = false;
manager.moveToXY("F:PM_MENU_TRACK.06", 1835, 340);
manager.moveToXY("F:PM_POPUP_TRACK.06", 1835, 340);
manager.moveToXY("F:PM_POPUP_TRACK_3.06", 1835, 340);
manager.setGPR(6, 1);
manager.activateSegment("S:PM_06.animate1");
manager.storeData("GPR6", 1);
manager.UDF_06_ADD();
}
.........
[свернуть]
Но, результат один и тот же, если хоть один какой нибудь чаптер помечен уже как GPR=1, то на любом чаптере в муви вспывает меню been added. Потому я и задавал вчера вопросы в надежде избежать этого косяка.
А как избежать этого косяка или что я делаю не так?
Как Вы поняли мне надо при добавлении в избранное, при воспроизведении муви, чтобы всплывало попап что этот трек (конкретный трек) добавлен, и это работает, но можно до бесконечности нажимать на кнопку добавления и этот попап тоже будет показываться. А я хотел бы чтобы если конкретный трек уже добавлен, то чтобы всплывало попап been added. Я не силен в скриптах, поэтому подскажите пожалуйста как решить эту задачу.
-
Цитата:
мне надо при добавлении в избранное, при воспроизведении муви, чтобы всплывало попап что этот трек (конкретный трек) добавлен
Ну вот с этого и надо было начинать :)
На уровне свича - это делать по 2 условия на каждый чаптер в свиче:
if Chapter('CONCERT')==2 & GPR(2)=0 -> [MA]: [set]: GPR[2] = 1; Popup: favorites added [done] [anm/act 1]
if Chapter('CONCERT')==2 & GPR(2)=1 -> Popup: favorites already added [done] [anm/act 1]
...
Если на уровне уже готового скрипта, то нужно поменять условие во всех if'ах добавив " && manager.getGPR(2)==0":
Код:
if (canExec && (manager.getChapter('CONCERT')==2) && manager.getGPR(2)==0) {
и продублировать if'ы, заменив условие, убрав добавление/сохранение GPR и заменив переход на другое меню - как-то так:
Код:
if (canExec && (manager.getChapter('CONCERT') == 2) && manager.getGPR(2)==1) {
canExec = false;
...
manager.activateSegment("S:PM_02_already.animate2");
}
-
Спасибо Большое за помощь и за то что познакомили с символами в Operators.
-
Можно сделать какую нибуть кнопку восстанавливающую расположение окон интерфейса по умолчанию? А то сдвинул одно окно, за ним второе, и не смог восстановить за несколько часов. Все нервы потратил, и работать в программе теперь невозможно.
-
Про кнопку подумаю.
Чтобы восстановить:
1) закрыть программу
2) удалить файл layout.xml в Мои Документы\Blu-Disc Studio
3) удалить ветку реестра HKEY_CURRENT_USER\Software\Disc-Art\Blu-Disc Studio\Windows
-
Спасибо. В реестр лезть не пришлось, хватило просто удалить layout.xml.
Теперь вопрос: У меня после того как в плейлисте, в котором муви, сделал команды на next и prev, в другом плейлисте, в котором меню, стало работать переключение на next и prev, хотя там запреты стоят на это. Если это не ошибка BDS, то подскажите пожалуйста какие команды сделать на next и prev чтобы они не работали.
-
Можно пустой скрипт, т.е. скрипт состоящий из двух слэшей (комментарий).
Стало работать там где запреты, потому что это Interactive mode. Скорее всего он игнорирует запреты. Посмотрю можно ли это исправить.
-
Подскажите в чем может быть проблема: PowerDVD и Dune Pro 4K успешно воспроизводят диск, а ArcsoftTMT отказывается. Я всего лишь добавил несколько UDF. Или ArcsoftTMT не показатель?
P.S. Сделал мукс и ArcsoftTMT стал воспроизводить, но слэш почемуто не работает.
-
У меня BD-J prjfile - 1, combine images - In a single image, но при этом при компиляции получается:
Source graphic size: 5 808 521 px
Result graphic size: 6 072 158 px
без предупреждений и ошибок, вместе с PNG который в Loading, или он не в счет?
-
Это вместе с Loading.
Там видимо получается что основная картинка менее 5,9, а остальное это Loading. Считает компилятор по картиночно. Раз компилятор проверяет на 5,9 по картиночно и не выдает ошибку, то видимо это нормально. Я проверяю на превышение 8,8 для профиля 1 - это уже может быть критичным.
-
Цитата:
Раз компилятор проверяет на 5,9 по картиночно и не выдает ошибку, то видимо это нормально.
Извините, я не совсем понял, тот PNG который в Loading, идет в расчет 5,9? Если идет, то может на всякий случай установить разбиение PNG или профиль 2?
-
6 072 158 px это вместе с Loading.
Когда все в одной картинке, то Loading все-равно остается в отдельной картинке.
А расчет идет по каждому файлу в отдельности. Поэтому основная картинка помещается в 5,9, а вместе с Loading они уже выходят за это значение. Я бы включил режим разделения на несколько картинок. Ну или включите второй профиль.