Ru-Board.club
← Вернуться в раздел «Программы»

» Media Player Classic - Black Edition (MPC-BE) часть 1

Автор: aha
Дата сообщения: 14.09.2012 19:48
judelaw

Цитата:
Думаю тут: O->Playback->DVD->Start playback from MainTitle

что-то тут не так, опция эта ничего не дала, начинается сразу проигрывание диска на черном фоне...(сравниваю с TotalMedia Theatre 5 , здесь менюшка с фоткой с картинками дисков и опцией play all...)
Автор: MaxPeacecity
Дата сообщения: 14.09.2012 19:56

Цитата:
Проверьте на файлах (не ДВД) так оно должно работать или не так?

Не совсем понимаю что должен быть "так" или "не так", но да - теперь шаг 0.1 как в Поте и это именно то, что и требовалось. Работает.


Цитата:
шаг 0.1, диапазон 0.2х...1.0х...12.0х
заодно и скажите до какого макс Х у вас поднимается скорость. Хоткеи стандартные, Ctrl+Up (стрелка вверх), Ctrl+Down (стрелка вниз),

У меня 4.0х и дальше не ускоряется. Но аналогично и в MPC-HC, так что регрессии никакой не вижу. Но, повторюсь лично про себя: выше мне и не надо.
Автор: judelaw
Дата сообщения: 14.09.2012 20:34
aha
ну а вообще, после воспроизведения можнj через меню в Root/Main Menu диска перейти?
На всех ДВД так?
Я просто ДВД не смотрю. И под рукой нет ни одного в данный момент.

MaxPeacecity

Цитата:
Не совсем понимаю что должен быть "так" или "не так"
Я так вообще не понимаю ибо не пользуюсь. Слепил на скорую руку.

Цитата:
теперь шаг 0.1 как в Поте и это именно то, что и требовалось. Работает.
Ну и отлично.

Цитата:
У меня 4.0х и дальше не ускоряется
ЕСли Аудио рендерер выбрать не DirectSound то предполагаю ускорится выше 4.0. Хотя смысл... уже на 1.4х голос ржачный. Надо попробовать драму посмотреть какую нибудь

Еще бы кто потестил на разных ОС и отписался все ли нормально.


Автор: eddiezato
Дата сообщения: 14.09.2012 20:41
judelaw
Ага, подтверждаю. То, что надо. Win7x64. Спасибо.
На серьезных видео "голосок" разряжает обстановку
Автор: V0lt
Дата сообщения: 14.09.2012 21:26
judelaw
В внешних либах есть SoundTouch. Я не знаю для чего он используется в плеере, но он умеет изменять скорость звука без изменения тональности.

Цитата:
http://www.surina.net/soundtouch/
Tempo (time stretch): Changes the sound to play at faster or slower tempo than originally without affecting the sound pitch.
Автор: judelaw
Дата сообщения: 14.09.2012 21:54
V0lt
Ну по звуку тут уж ты спец. Я буду разбираться всю жизнь.

Добавлено:
eddiezato

Цитата:
Спасибо

Рано еще спасибо говорить. Мне еще с другими разработчиками перетереть нужно. Если возражений от них не будет - внедрим сразу. Aleksoid1978 вроде был против такого маленького шага 0.1

Добавлено:
V0lt
SoundTouch как я вижу уже привязан к MPCAudioRenderer, и работает с этим рендерером. Тут да, можно сделать как в поте, чтоб тонольность не менялась при изменении скорости.
Автор: zmashine
Дата сообщения: 14.09.2012 22:28
V0lt

Цитата:
В внешних либах есть SoundTouch. Я не знаю для чего он используется в плеере, но он умеет изменять скорость звука без изменения тональности.


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

на MPC Audio Renderer скорость аудио не меняется.
Автор: judelaw
Дата сообщения: 14.09.2012 22:40
Я так подозреваю что Пот вообще не использует pMS->SetRate.
Хоть выставь 12х - в его аудиорендерерах, в их свойствах поле Rate всегда 1.0

Если Потовскую аудиокухню отключить, в частности "включить фильтры обработки аудио", то будет таже история что и у мрс* - тональность меняется

Добавлено:
zmashine

Цитата:
на MPC Audio Renderer скорость аудио не меняется

меньше 1.0 меняется, причем тональность на месте. Больше 1.0 да, не менятся скорость аудио.
Но это через WASAPI
Автор: Aleksoid1978
Дата сообщения: 15.09.2012 02:54
judelaw

Цитата:
Aleksoid1978 вроде был против такого маленького шага 0.1

Ну раз надо - значит делай 0.1 А еще лучше - опция где можно будет выбирать из выпадающего списка шаг изменения скорости от 0.1 до 1.0
Автор: aha
Дата сообщения: 15.09.2012 04:28
judelaw

Цитата:
aha
ну а вообще, после воспроизведения можнj через меню в Root/Main Menu диска перейти?
На всех ДВД так?
Я просто ДВД не смотрю. И под рукой нет ни одного в данный момент.


- насчет DVD не знаю, речь о [BD-Audio], multiAVCHD
Автор: MaxPeacecity
Дата сообщения: 15.09.2012 10:53

Цитата:
ЕСли Аудио рендерер выбрать не DirectSound то предполагаю ускорится выше 4.0. Хотя смысл... уже на 1.4х голос ржачный. Надо попробовать драму посмотреть какую нибудь

Ну для каких-нибудь видеоуроков к "ржачному голосу" привыкаешь быстро и там это не сильно мешает. А в случаях когда решил титры промотать (где голоса никакого и нет) то и вообще пофиг.
Ускорять выше 4 и правда редко надо, так что это относительно мелочь.


Цитата:
Ну раз надо - значит делай 0.1 А еще лучше - опция где можно будет выбирать из выпадающего списка шаг изменения скорости от 0.1 до 1.0

Ну опция - это было бы лучше всего: кому надо большой шаг - поставит себе большой, кому надо чтобы голос не становился с первого шага ржачным - сделает маленький шаг


Цитата:
В внешних либах есть SoundTouch. Я не знаю для чего он используется в плеере, но он умеет изменять скорость звука без изменения тональности.


Цитата:
SoundTouch как я вижу уже привязан к MPCAudioRenderer, и работает с этим рендерером. Тут да, можно сделать как в поте, чтоб тонольность не менялась при изменении скорости.

Ну это было бы вообще отлично. Однако даже в текущем варианте (как в тестовом билде) и то уже лучше, чем было. Так что всё равно спасибо, хотя бы и за такой вариант. Будем ждать внедрения.
Автор: judelaw
Дата сообщения: 15.09.2012 11:26
aha

Цитата:
- насчет DVD не знаю, речь о  [BD-Audio], multiAVCHD
Про меню БД в фриварных плеерах можно забыть.

Aleksoid1978

Цитата:
А еще лучше - опция где можно будет выбирать из выпадающего списка шаг изменения скорости от 0.1 до 1.0
Тут ведь тоже есть нюансы:
- от 0.2 до 1.0 - какой тут опциональный шаг? Разве что кратный, например 0.1/0.2/0.4. Если зададим 0.3 или 0.5 или 0.7 то фигня получится.
- от 1.0 до 4(12) тут чуть полегче, но...

В идеале нужно не шаг выбирать а возможность сразу прыгать на нужную скорость. К примеру как в WMP:


Но тут опять проблема - в настройках это прятать будет не удобно, а всплывающее окно с регулятором - это займет время (пока даже не представляю себе как можно реализовать)
Автор: eddiezato
Дата сообщения: 15.09.2012 11:43
judelaw
Можно пока для быстрого результата внедрить выбор шага 0.1/0.5/1.0 - это должно удовлетворить все стороны.
Автор: MaxPeacecity
Дата сообщения: 15.09.2012 15:03

Цитата:
В идеале нужно не шаг выбирать а возможность сразу прыгать на нужную скорость. К примеру как в WMP:

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


Все это слишком замудрено. Слишком глубоко копаете. Сделайте опциональный выбор между 0.1 (как в тестовом билде) и 1.0 (как было раньше), или что-то вроде вон как выше предложили 0.1/0.5/1.0 - думаю этого хватит большинству, кто вообще изменение скорости использует.
Автор: judelaw
Дата сообщения: 15.09.2012 16:10
MaxPeacecity
eddiezato
Вот вы думаете все так просто? Есть еще ДВД, там диапазон -16 +16, играет и вперед и назад. Но декодеры просто в а*уе от такого. Наиболее вменяемый MS декодер. На слишком медленном темпе (-0,2...- +0,2 вообще плеер наглухо виснет.
Я к тому что нюансов дофига и больше.
Могу прямо сейчас сделать полурабочий вариант и забить или же нужно основательно разбираться в этой херне практически никому не нужной.

Завтра найдутся еще пару пользователей, которые изъявляют желание смотреть с конца в обратном порядке с ускорением для экономии времени. Не хочется опять ковырять это. Хочется сделать более менее нормальный вариант и забыть как страшный сон.
Автор: eddiezato
Дата сообщения: 15.09.2012 16:43
judelaw
Никаких проблем. Я понимаю, что это задачка со своими подводными камнями. И понимаю Ваше желание, если браться, то делать полно и качественно. За реализацию буду весьма признателен, но при отказе не помру.
Автор: MaxPeacecity
Дата сообщения: 15.09.2012 17:05

Цитата:
Вот вы думаете все так просто?

Совершенно уверен что не просто. Просто исходили из того что сейчас все равно "есть и плохо". А вы сделаете возможность изменять с шагом 0.1 и оно будет всё так же "плохо" как было (технически), но зато можно будет использовать.


Цитата:
Завтра найдутся еще пару пользователей, которые изъявляют желание смотреть с конца в обратном порядке с ускорением для экономии времени.

Я ни на чем не настаивал. Это была просто просьба, чтобы опция стала полезной (а то при нынешнем шаге в 1.0 собственно оно и правда редко надо). Вы можете ничего не делать в этом плане. Я сейчас использую Пот в таких ситуациях, когда требуется смотреть с изменением скорости - меня не "сломает" использовать его и дальше.


Цитата:
Хочется сделать более менее нормальный вариант и забыть как страшный сон.

Только приветствуем такое желание. Спасибо, что пытаетесь.
Автор: V0lt
Дата сообщения: 15.09.2012 19:12
judelaw
Для MPC-HC делал следующие варианты ускорения-замедления:
медиафайлы: 0, 0.125, 0.25, 0.5, 1, 1.25, 1.5, 2, 4
DVD-Video: -8, -4, -2, -1, 0, 1, 2, 4, 8
0 - пауза.
Сейчас почти тоже самое, отсутствуют лишь выделенные значения.

Хотел сделать быстро, но не получилось. Исходный код просто ужасен.

Заметил баг на EVR-CP. При ускорении видео идет не плавно, особенно заметно 1.25 и 1.5. На обычном EVR много лучше.
Автор: judelaw
Дата сообщения: 15.09.2012 19:25
V0lt
Только MS декодер вменяемо работает с pDVDC->PlayBackwards. Или это так только в мрс*.
WMP дает диапазон для двд - от -16 до +16, причем с шагом 0.1 можно, но когда Rate +-0.1 плеер спокойно уходит в нирвану.
С MS декодером получается шаг 0.1, но надо диапазон где то от -0,3 до +0,3 (а лучше от -0,5 до +0,5) тупо пропускать, чтоб неприятностей не было.
Но даже в этом случае, когда постепенно уменьшаем скорость, например:
1>0.9>0.8>0.7>0.6>0.5>тут пропускаем и сразу на -0,5.... вот на этом месте может быть висяк, с любым другим декодером (встроенный, ффдшоу, арксофт, киберлинк).

Добавлено:
V0lt
Хотел еще спросить у тебя.... какого фига происходит следующее:
double dRate;
dRate = 0.2;
в отладчике смотрю, значение 0.20000000023, то есть больше 0.2, а это сбивает с толку когда делаем условие типа
if (dRate == 0.2)...

Это так и надо? Я чего то не знаю в с++?
Автор: V0lt
Дата сообщения: 15.09.2012 19:38
judelaw
Я не знаю, что выдает DVD Navigator после PlayBackwards, но похоже у большинства декодеров крышу сносить от этого.
Автор: judelaw
Дата сообщения: 15.09.2012 19:42
еще с двд звук при ускорении отваливается. Так же и в WMP.
Пот-плеер не оперирует DS Rate значениями, там всегда 1.0, использует альтернативные варианты изменения скорости воспроизведения как для файлов так и для ДВД.

Добавлено:
V0lt

Цитата:
Заметил баг на EVR-CP. При ускорении видео идет не плавно, особенно заметно 1.25 и 1.5. На обычном EVR много лучше.

Да криво все с ускорением воспроизводится. Так криво, что и желания делать это ускорение нет.
Автор: V0lt
Дата сообщения: 15.09.2012 19:59
judelaw
В твоем примере условие должно сработать. Но если dRate было получено путем вычислений, то условие может не сработать.

Неконстантные вещественный числа не стоит проверять через == или != .
Автор: judelaw
Дата сообщения: 15.09.2012 20:09
V0lt

Цитата:
Но если dRate было получено путем вычислений, то условие может не сработать.

да, делаю что-то типа dRate = dRate+0.1; и если dRate был 1.0, то получается что стал совсем не 1.1 а чуть больше?
Приходится извращаться типа так: if (dRate < 1.11), добавляя одну сотую. Странно все это.

Добавлено:
V0lt
Aleksoid авторитетно заявил, что есть альтернативные способ ускорения воспроизведения - через изменение TimeStamp - с помощью него задавать ускорение.
Сказал и пропал
Я ничего не понял, но если так, то может есть и другой способ перемещения по таймлайну в обход IMediaSeeking ??? Или же у нас просто все настолько плохо, что причина в другом.
Автор: V0lt
Дата сообщения: 15.09.2012 20:26
judelaw
Проверки

Код: if (a == b)
if (a != b)
Автор: judelaw
Дата сообщения: 16.09.2012 14:50
Сделал опцию шага ускорения/замедления воспроизведения.


Но есть вопросы, которые не знаю как лучше сделать.
Для файлов не желательно задавать значение Rate меньше +0.2, для ДВД - игнорируется диапазон от -0.3 до +0.3.
Теперь такая ситуация: задаю шаг, к примеру 0.5, и начинаю уменьшать скорость: 1.0 -> 0.5 -> а дальше должно быть 0, но так как меньше 0.2 мы поставить не можем, то варианта как бы два:
а) игнорировать дальнейшее уменьшение скорости (остаемся на 0,5). Для ДВД прыгаем сразу в -0,5 (обратное воспроизведение)
б) переходить на минимальное значение (прыгаем на 0,2). Для ДВД прыгаем на минимальное 0.3.

Если вариант б), то увеличивая потом скорость с тем же шагом 0,5 мы не попадаем в скорость 1.0 (то есть будет 0.2->0.7->1.2->1.7 и так далее)
Как правильно сделать?

Ну и не всегда ес-но попадем в 1.0 если менять шаг на другой неоднократно (то есть сначала изменяем скорость с одним шагом, потом выбрали другой шаг и меняем скорость уже с этим шагом).

То что в 1.0 не попадаем в некоторых случаях думаю не критично. Всегда есть сброс (Ctrl+R). Но все равно как то запутано замысловато выходит или я не прав?
Автор: Mike_Litoris
Дата сообщения: 16.09.2012 20:18
aha

Цитата:
А вот сейчас тестируя связку MPC-BE и ffdshow получил странный результат, как уже писал всякие HD варианты идут на ура, а вот некоторые ( не все) простые DTS не играются...

Версия ffdshow какая?
Автор: zmashine
Дата сообщения: 16.09.2012 21:03
judelaw

думаю, нужно делать вариант а.
Автор: judelaw
Дата сообщения: 16.09.2012 21:14
Будет так:


Auto (по-умолчанию) - то же что и сейчас имеем.
Выбор шага - изменяем скорость конкретно этим шагом.
При переключении с Авто на пользовательский шаг - сброс Rate = 1.0

Для файлов: если следующее значение Rate (скорости воспроизведения) меньше минимального - игнорим. Например, скорость текущая 1.0 а шаг выбран 0.9 - уменьшить скорость не удастся, так как 1.0-0.9 меньше допустимого минимального значения 0.2.
Также ничего не произойдет при изменении скорости если сам директшоу отвергает заданное значение Rate.

Для ДВД алгоритм такой:
То же самое что и для файлов.
Игнорируется диапазон от -0.3 до +0.3. Если новое значение Rate попадает в данный диапазон, то значение меняется на значение с противоположным знаком, то есть будет воспроизводится в противоположном направлении. Поясню на примере:
Скорость 1.0, шаг 0.6. Последовательно уменьшаем скорость :
(+1.0) -> (+0.4) -> (-0.4) -> (-1.0)

Вобщем как то так. Еще раз замечу, что с ДВД обратное воспроизведение работает криво практически со всеми декодерами, кроме MS декодера. Звук отключается с ДВД при изменении скорости всегда.
Автор: MaxPeacecity
Дата сообщения: 16.09.2012 21:15

Цитата:
То что в 1.0 не попадаем в некоторых случаях думаю не критично. Всегда есть сброс (Ctrl+R). Но все равно как то запутано замысловато выходит или я не прав?


Цитата:
Как правильно сделать?


Мне кажется оба варианта неочевидными. Проще всего сделать 2 варианта:
1) Как было (Default).
2) 0.1 (как в Поте).

Это решит проблемы типа


Цитата:
задаю шаг, к примеру 0.5, и начинаю уменьшать скорость: 1.0 -> 0.5 -> а дальше должно быть 0, но так как меньше 0.2 мы поставить не можем

и

Цитата:
увеличивая потом скорость с тем же шагом 0,5 мы не попадаем в скорость 1.0 (то есть будет 0.2->0.7->1.2->1.7 и так далее)


Мне кажется тут большинству надо или "как было", или высокий контроль (шаг 0.1).
Это ИМХО, как активного пользователя данной опции.
Если кому-то нужны промежуточные значения опции (типа 0.3) пусть озвучат зачем.
Автор: aha
Дата сообщения: 16.09.2012 22:05
Mike_Litoris

Цитата:
Версия ffdshow какая?

ffdshow_rev4479_20120812_xvidvideo-ru_x64-msvc2010

Страницы: 123456789101112131415161718

Предыдущая тема: Call центр Rarus для СRM Управление продажами 1С 7.7


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.