Я бы мог записывать игры в сети и с уверенностью скажу - это было бы интересно, вопрос как это сделать на практике.
Итак, решил разобраться основательно в вопросе видеозаписи экрана.
По нижеуказанному алгоритму можно получить видео приемлимого качества при размере 1 час = ~75Mb.
Алгоритм
Этап 1, запись
*Для записи видео с экрана советую программу FRAPS v2.9.3 (3,34Mb).
Во-первых, она специально разрабатывалась под игры, соответственно она записывает все корректно, а во-вторых она не делает компрессию на лету, а посему запись видео никак не сказывается на игре (в отличии от CamStudio).
*Разрешение в игре желательно поставить на 1024*768.
Настройка FRAPS:
*Убрать галочку с Record Sound (по желанию)
*Поставить Half-size (пока что только так, иначе при Full-size программа VirtualDub, о которой чуть позже напишу, будет ругаться).
*Поставить 3 fps
*Поменять hotkey для видео на ту кнопку, на которую точно не нажмешь в игре, например, на "Atl-9".
*Overlay corner наверно лучше вправо вверх.
*По вкусу поменять путь к папке для сохраняемого видео.
Все. Теперь сворачиваем fraps, открываем игру, нажимаем запись (при этом цвет с желтого меняется на красный), играем, нажимаем стоп и теперь у нас есть запись.
Программа Fraps автоматически разбивает записуемое видео на файлы размером 3,9 Гб.
При разрешении 1024*768 3,9 Гб расходуются где-то за 40 минут (опция Half-size включена).
При разрешении 1280*1024 3,9 Гб расходуются где-то за 27 минут (опция Half-size тоже включена).
Этап 2, создание текстовых комментариев (субтитров)
О том как создать субтитры (а в нашем случае комментарии игрока) читаем
http://www.fansub.ru/Practice/Advanced/5
Для создания субтитров используем программу Subtitle Workshop (1,03 Mb). Ставим в ней Cyrillic для русского текста.
Сохраняем файл в формате .ssa (предварительно в опциях настроив цвет этого формата(рекомендую желтый) и положение вывода(рекомендую в верху)).
Для избежания проблемы отображения русского в виде абракадабры делаем следующее: открываем файл в блокноте и пересохраням в кодировке Unicode.
О том как вшить субтитры в видео описано здесь
Если нужно на записанное видео не только вставить текст, но и наложить геометрические фигуры (обвести что-то овалом, например) и/или применить какие-то эффекты фотошопа (например, смазывание), то тогда нужна программа Adobe Premiere.
Скачать (702 Mb)
Учебник (3,58 Mb) - интересуют главы 12-14.
Этап 3, компрессия
Файл на выходе окажется слишком большим, необходимо его сжать. Причем архивирование WinRAR'ом тут мало что даст, поэтому воспользуемся специальной программой для компрессии видео, например, VirtualDub (1,27Mb)
Важная деталь! На стадии обработки видео следует использовать двухпроходной режим компрессии видео.
Теория по двупроходному режиму
Отличная инструкция по двупроходному режиму здесь
Видео битрейт ставим на 180 kbps.
Файл после декомпрессии станет существенно меньше по размеру.
И вот еще заметка про звук из авторитетного источника
Этап 4, архивирование
Не нужен!
Эмпирически установил, что степень сжатия около 95% (то есть сжимать особо нет смысла).
Бывают случаи когда нужно скачать не весь файл, а только начальный кусок, поэтому лучше видео не архивировать.
Другое дело если видео выкладывается кусками (Fraps автоматически режит на куски запись): тогда, возможно есть смысл.
--------------------
Полезные сслылки по данной теме
http://teapot3d.narod.ru/Articles/3dsmaxbasechar/a01.htm
http://www.rusdivx.ee/ibf/index.php?showtopic=14222
http://forum.antichat.ru/thread2851.html
--------------------
А данная тема начиналась с моего вопроса:
Существует ли возможность записи и проигрования видеопрохождений и если нет то кому написать чтоб добавили (технически это не сложно реализовать)?
<div align="center">Дополнительная информация на главном экране Civ4 Bts | Колонизация
Обучающие видеозаписи игр</div>
Дай, пожалуйста, линк. Не знаю даже по какому слову искать.
Видеопрохождения очень полезны для СГОТМов. Одно дело прочитать 100 страниц, другое - увидеть действия в игре (ради экономии времени, пользы, конечно, от чтения больше).
<div align="center">Дополнительная информация на главном экране Civ4 Bts | Колонизация
Обучающие видеозаписи игр</div>
Разрешение этого вопроса потянет на наш-нобелевскую премию в цивилизованном мире!
Знаю, подло завелось теперь на земле нашей; думают только, чтобы при них были хлебные стоги, скирды да конные табуны их, да были бы целы в погребах запечатанные меды их. Перенимают черт знает какие бусурманские обычаи; гнушаются языком своим; свой с своим не хочет говорить; свой своего продает, как продают бездушную тварь на торговом рынке. Милость чужого короля, да и не короля, а паскудная милость польского магната, который желтым чеботом своим бьет их в морду, дороже для них всякого братства. Но у последнего подлюки, каков он ни есть, хоть весь извалялся он в саже и в поклонничестве, есть и у того, братцы, крупица русского чувства. И проснется оно когда-нибудь, и ударится он, горемычный, об полы руками, схватит себя за голову...
Н.В. Гоголь, "Тарас Бульба"
Есть программка HyCam2, снимает происходящее на мониторе. Если циву запустить в оконном режиме - то вполне можно пользоваться.
После запуска проги нажмите "Select Window" или "Select Region". Управление - клавишами F2 (стар/стоп), Ф3 (пауза/пуск), Ф4 - сделать скриншот. Поэтому эти клавиши прога будет перехватывать из цивы. Хотя их можно и переназначить
Написал на их-фанатики просьбу о создании такой софтины в раздел "required utilites". Посмотрим...
К сожалению HyCam2 не разрешает данную проблему: при размере окна 800*600 без звука 1Mb расходуется за 22 сек., тогда на час записи уйдет 164 Mb.
А меж тем нам не нужна вся графическая информация. Тут достаточно стартовую карту и информацию на какой секунде что нажималось. Тогда запись всей игры будет занимать ~1-3 Mb.
Вообще концепция видеопрохождения отлично реализована на эмуляторе GENS+ для приставки Sega.
<div align="center">Дополнительная информация на главном экране Civ4 Bts | Колонизация
Обучающие видеозаписи игр</div>
<div class='quotetop'>Цитата(Dimon_157 * 13.9.2007, 20:07) [snapback]201336[/snapback]</div>Это нужно через SDKТут достаточно стартовую карту и информацию на какой секунде что нажималось.
[/b]
С пола не упасть!
http://img444.imageshack.us/img444/7241/samogonxg0.png
<div class='quotetop'>Цитата(vpadlo * 13.9.2007, 22:24) [snapback]201361[/snapback]</div><div class='quotetop'>Цитата(Dimon_157 * 13.9.2007, 20:07) [snapback]201336[/snapback]Это нужно через SDKТут достаточно стартовую карту и информацию на какой секунде что нажималось.
[/b]
[/b][/quote]
Есть на примете какой-то конкретный класс? Просто мне кажется что мышка и клавиатура - это к ядру.
<div align="center">Дополнительная информация на главном экране Civ4 Bts | Колонизация
Обучающие видеозаписи игр</div>
<div class='quotetop'>Цитата(Dimon_157 * 13.9.2007, 22:49) [snapback]201365[/snapback]</div>Так нам не мышку с клавиатурой записывать надо, а действия, типа перемещения юнита и т.д.Есть на примете какой-то конкретный класс? Просто мне кажется что мышка и клавиатура - это к ядру.
[/b]
С пола не упасть!
http://img444.imageshack.us/img444/7241/samogonxg0.png
<div class='quotetop'>Цитата</div>Как думаешь, стоит написать разрабам на мыло?Да-да, задача очень актуальная. Разработчикам игры это большой минус, что не встроили такую функцию записи демок. В любой RTS есть сейчас.[/b]
<div class='quotetop'>Цитата</div>Лучше мышку с клавиатурой: так больше информации.Так нам не мышку с клавиатурой записывать надо, а действия, типа перемещения юнита и т.д.[/b]
<div align="center">Дополнительная информация на главном экране Civ4 Bts | Колонизация
Обучающие видеозаписи игр</div>
<div class='quotetop'>Цитата</div>Да, но у нас не RTS, a TBS. Сколько длится партия в RTS и сколько в Циве. Банальный "захват экрана" в этом случае не канает. Нужно что-то вроде "записи шахматной партии"В любой RTS есть сейчас.[/b]
<div class='quotetop'>Цитата(Poops * 14.9.2007, 12:36) [snapback]201439[/snapback]</div>Там сделано именно так. Фиксируются все действия игрока. А поскольку движок однозначно реагирует на них, то и всю игру можно заново воссоздать, когда включаешь воспроизведение. Вся графика рендерится движком заново, но магическим образом получается то же что и в первый раз.Банальный "захват экрана" в этом случае не канает. Нужно что-то вроде "записи шахматной партии"[/b]
<div class='quotetop'>Цитата</div>Хорошо, тогда зайдем с другой стороны: в RTS ОШИБОЧНОЕ решение игрока влияет на развитие партии. На то оно и "реальное время". В TBS игрок может принять какое-то решение, но потом его отменить, главное - успеть это сделать до того, как будет нажата кнопка "Сделать ход". (Например, поставить строить Рынок, потом подумать, поменять решение и изменить строительство в городе на фрегат). Так вот, промежуточные решения показывать не надо, но все принятые окончательно решения обязательно надо показатьТам сделано именно так. Фиксируются все действия игрока. А поскольку движок однозначно реагирует на них, то и всю игру можно заново воссоздать, когда включаешь воспроизведение.[/b]
В том-то и дело, что надо показывать все промежуточные действия. Это нужно для судейства. Если кто-то, не судья, просто хочет посмотреть ход игры, можно для такого случая предусмотреть "упрощенный" режим воспроизведения, где только финальные решения.
Что же касается судьи. Единственный способ наверняка знать, что все было честно, - это когда игрок играет в присутствии судьи, а тот смотрит через его плечо. Но раз такое невозможно, мы стараемся наиболее приблизить.
Ведь в чем польза от читерства? Главное - в знании гораздо большего объема информации, чем игрок мог бы получить честными средствами в этой точке игры. От этого можно играть существенно оптимальнее. Накопление информации идет путем многих переигровок. Причем, по финальному сейву это особо не ловится. Даже если там сыграно все в одну сессию, не факт, что это первая попытка. Игрок мог вначале много раз пробовать, шлифовать стратегию.
Как это ловится по (гипотетическому) полному реплею? Судья смотрит за всеми действиями игрока, и сразу выделяются странные, т.е. такие, которые нельзя обосновать информацией, которую игрок успел получить в партии. Конечно, хитрый читер может бороться: демонстрировать получение информации. (Ему все равно проще - знает, куда за этой информацией идти разведчиками и т.п..) Но это надо тщательно делать при каждой переигровке... В итоге, либо читер когда-нибудь срывается и упускает некую деталь - а так преступников и ловят, на маленьких ошибках в привычном деле. Либо не выдерживает скуки/напряжения и бросает это дело.
Кроме информации, есть другие признаки честно сыгранной партии: это так сказать нерешительность игрока. Поставил строиться рынок, поменял на фрегат. Поводил мышкой по войскам... Прошелся по городам. Где-то переставил жителей на другие клетки, посмотрел как меняется время на постройку/науку, вернул обратно. И подобное делается много раз в течение партии. Читер тоже будет вынужден все такое изображать для судьи. Причем это чисто для судьи - сам читер давно выяснил, как оптимальнее. Но изображать приходится. После энного раза это начинает напрягать в крайней степени.
Резюме: позволяя судье в значительной мере "заглянуть через плечо", мы вынуждаем читера на труд, одновременно очень скучный и не прощающий малейших упущений. Такое - очень тяжело.
<div class='quotetop'>Цитата</div>Это нужно для обучения. Чтобы начинающие видели, как играют "боги"Это нужно для судейства[/b]
Вопросы судейства уже решены в достаточной степени. Их-фанатики давно отлавливают релоады, вскрыть админский пароль тоже не "два пальца об асфальт".
Вопрос записи игры рассматривается именно через призму обучения и демонстрации интересных игр. Как было бы интересно посмотреть вторую демогамез в записи
Для обучения это тоже нужно. Ну, так одно другому не мешает Будет механизм - все будет. Я бы тоже с удовольствием посмотрел, как работают мастера доения Кактус Пит и ЕЕО - сам пока не умею играть на медали; ну а заодно бы убедился, что играют по правилам. (Релоады там, на их-фанатиках, не очень-то ловятся - на наш-фанатиках более надежное судейство, живыми людьми).