Захват рабочего стола как записанный фильм в C # - PullRequest
0 голосов
/ 18 января 2012

Мое требование - создать приложение, которое будет записывать действия на рабочем столе вместе со звуком в виде фильма.После поиска я обнаружил, что Microsoft Expression Encoder можно использовать для записи действий на рабочем столе в виде фильма, но размер выходного файла очень большой.За 10 секунд видео оно заняло от 30 до 40 МБ.Кроме того, он использует формат xesc.

Есть ли какой-либо другой бесплатный API для этой работы?

Ответы [ 2 ]

3 голосов
/ 18 января 2012

Прежде чем отказаться от Expression Encoder, попробуйте настроить:

ScreenCaptureJob.ScreenCaptureVideoProfile.Quality

Снижение качества может значительно уменьшить размер файла. Попробуйте и посмотрите, приемлемы ли результаты для вас.

Уменьшение частоты кадров на самом деле бесполезно; Я предполагаю, что это вызывает фиксированную частоту кадров, тогда как по умолчанию используется переменная частота кадров в зависимости от активности.

Если вам не нравятся файлы .xesc, вы можете перекодировать видео после того, как вы его захватили.

Но от 30 до 40 МБ в течение десяти секунд все еще в сторону - это слишком много. Я записал 10 секунд полноэкранного видео (по общему признанию, не очень большое, 1366x768) с качеством по умолчанию. С небольшим продолжением это заняло 300 КБ; с большой активностью (постоянно переключаясь между полноэкранными приложениями) это заняло максимум 1,5 МБ.

Уменьшение качества уменьшенных размеров файлов примерно на 50%.

Если вы не воспроизводите полноэкранное видео и не пытаетесь записать его, вы не должны видеть ничего, похожее на 30–40 МБ. Возможно, вам стоит взглянуть на настройки звука.

0 голосов
/ 02 февраля 2018

ScreenRecorderLib от Nuget - это хорошо.

SharpAVI занимает слишком много моего дискового пространства.

Вы должны быть осторожны с ScreenRecorderLib, для этого потребуется некоторое время, сохраняющее файл mp4.

Убедитесь, что ваша программа не завершится до того, как это произойдет.

Я использую FileInfo.Length, чтобы проверить, не увеличивается ли размер файла. Это определит, закончено ли сохранение или нет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...