Как сделать записи рабочего стола WebM?

13

Я ищу либо настольное приложение для записи / скринкаста, которое может выводить в формате WebM, либо программу, которая может конвертировать сгенерированный gtk-recordmydesktopв формате .ogv в WebM.

Я выбрал WebM в качестве нужного мне формата, потому что, похоже, это единственный бесплатный кодек, поддерживаемый YouTube, где мои записи заканчиваются. Я пытался загрузить .ogv в прошлом и получил сплошное зеленое видео, так что это не сработает для меня.

Я живу в США и стараюсь держаться подальше от всего, что может иметь проблемы с патентами на ПО, например gstreamer0.10-plugins-uglyили gstreamer0.10-plugins-bad. Именно по этой причине я изначально интересовался Tibesti (например), но для этого требовалась установка пакетов, подобных вышеупомянутым.

Я несколько раз искал в Интернете бесплатное (как в деньгах, так и в свободе) решение, но пока ничего не смог найти. Какие-либо предложения?

Кристофер Кайл Хортон
источник
ты можешь сказать свое местоположение?
Линсити
@Alaukik, я уже говорил выше, я живу в США. Если вам нужно знать, в каком штате, я живу в Мичигане. Я не хотел бы быть более конкретным, чем это.
Кристофер Кайл Хортон
@ Warriorlng64 ой!
Линсити

Ответы:

6

12.04 LTS

Похоже, что в этом выпуске ffmpeg больше не работает должным образом для преобразования recordmydesktopзаписей .ogv в WebM. Поскольку он больше не поддерживается, рекомендуется использовать его замену avconv, предоставленную в libav-toolsпакете (который, кажется, устанавливается автоматически, если он ffmpegбыл установлен).

Команда, которую нужно использовать avconvдля конверсий, не слишком отличается от ffmpeg:

avconv -i input.ogv output.webm

Таким образом, если кто-то сталкивался с той же проблемой, связанной с попыткой использовать только бесплатные пакеты для преобразования из .ogv в .webm в 12.04 (или, вероятно, позже), я решил эту проблему. Это может быть полезно, если вы делаете записи, чтобы показать новые функции или проблемы с документами, используя видео.

Кристофер Кайл Хортон
источник
Недавно я начал работать над Kazam , теперь он может записывать в форматах VP8 / WebM и H264 / Matroska. Я сделал сборки PPA для Oneiric и Precise. Он использует gstreamer для записи и не требует ffmpeg. Он должен работать на чисто установленной Ubuntu без лишних кодеков.
BigWhale
@ BigWhale Просматривая код немного, я заметил, что он все еще зависит от gstreamer0.10-plugins-badи gstreamer0.10-plugins-ugly. Эти пакеты содержат кодеки, которые я пытаюсь избежать из-за проблем с патентами, как указано выше. Если станет доступна обновленная / альтернативная сборка, которая не зависит от этих пакетов, дайте мне знать в новом ответе. Спасибо, в любом случае!
Кристофер Кайл Хортон
Я получаюError while opening encoder for output stream #0:1 - maybe incorrect parameters such as bit_rate, rate, width or height
JRG
@jrg У меня возникла похожая проблема на моем ноутбуке при преобразовании видео, записанного мной, с помощью обходного пути, опубликованного в этом recordmydesktopотчете об ошибке . Любопытно, что когда я перенес то же видео на свой настольный компьютер и конвертировал его там, он работал без проблем. Так что ... это может быть ошибка, но я не думаю, что знаю об этом достаточно, чтобы подать отчет.
Кристофер Кайл Хортон
1
В качестве примечания: FFMpeg все еще поддерживается (на самом деле недавно вышла версия 1.0), но между некоторыми разработчиками произошла мини-война, которая привела к развилке avconv. Просто сопровождающие Debian / Ubuntu приняли сторону avconv. Сообщение «ЭТА ПРОГРАММА УСТАРЕЛА» полностью вводит в заблуждение. Читайте о текущей ситуации здесь: http://blog.pkh.me/p/13-the-ffmpeg-libav-situation.html .
Phoibos
6

Я использую такие вещи:

avconv -f x11grab -s 1024x768 -r 24 -i 0:0 -deadline realtime -b 5000000 -minrate 200000 -maxrate 40000000 recording-filename-000.webm

Где:

-f x11grab - вводит в действие «формат» захвата экрана.

-s 1024x768разрешение входного файла (или область захвата). Например, соответствует разрешению рабочего стола. Если меньше, то область записи будет слева и сверху. В этом примере я использовал область записи 1024x768.

-r 24- частота кадров. В основном, от 23 до 30 кадров в секунду, которые используются в реальных фильмах для плавной записи изображения. Однако для скринкаста было бы неплохо уменьшить это, чтобы получить лучшую картинку на низких битрейтах. Я использовал 24, чтобы сделать захват экрана игры.

-i 0:0является подсказкой для использования отображения 0: 0 в качестве источника (устройство находится в нотации xorg). Если у вас только 1 монитор и настройка Xorg по умолчанию, 0: 0 будет в большинстве случаев нормально.

-deadline realtime- это подсказка к libvpx. Мы хотим живой захват. Мы хотим производительность в реальном времени. Так что libvpx сделает все возможное, чтобы кодировать VP8 в режиме реального времени. Для этого он немного меняет качество на скорость. При заданном битрейте качество будет немного хуже, чем не в режиме реального времени. Но скорость кодирования взлетела бы до небес. Так что на моем оборудовании он может обрабатывать 1024x768 при 24 кадрах в секунду, яркие сцены без потери кадров (хотя рекомендуется мощный процессор). В этом примере я хотел получить живое изображение достойного качества при хорошем FPS и довольно большой области захвата. Таким образом, использование процессора кодеком может быть проблемой. Вот почему этот намек действительно нужен для хороших результатов.

-b 5000000- целевой битрейт в битах / секунду. Я использовал 5 Мбит, чтобы получить более или менее хорошую картину довольно интенсивных сцен. Кодек будет стараться поддерживать среднюю скорость передачи битов видео вблизи этого значения. Чем ниже это значение, тем хуже качество и меньше файл. Вы можете немного поэкспериментировать, чтобы понять, какой битрейт хорош для определенных целей. Сервисы обмена видео будут конвертировать видео, если вы не выполните настройку. Если вы собираетесь использовать собственный сервер, вам решать заботу о трафике. Если вы недолетите, качество изображения будет плохим. Не стесняйтесь менять значение, чтобы понять, что лучше для вас. 5Mbits были предназначены для более или менее приятного для глаз живого захвата интенсивных сцен в играх, где вы не можете легко увидеть, что изображение слишком сжато. Для захвата неподвижных приложений вам понадобится гораздо меньше.

-minrate200000 - минимально допустимый битрейт для кодека. В зависимости от характера вещи, которую вы хотите запечатлеть, иногда вам может потребоваться установить минимальный битрейт, чтобы сохранить разумно выглядящую картинку в любом случае. Иногда эвристика кодека может снизить битрейт намного ниже желаемого значения, что в некоторых случаях дает плохую картинку. Эта опция позволяет заставить кодек поддерживать минимальную скорость передачи битов, даже если кодек считает, что сцена простая, и скорость передачи битов может быть отброшена. Высокое значение этого параметра может увеличить размер файла, не позволяя кодеку использовать более низкие битрейты.

-maxrate 40000000- Это значение контролирует максимальный битрейт при интенсивной съемке. Я использовал действительно высокое значение, чтобы позволить кодеку идти намного выше, чем желаемое среднее значение, если он считает, что более высокая скорость обязательна для поддержания достойного качества в некоторой сцене. Чтобы получить красивую картинку в любых условиях, желательно установить это достаточно высоко (40 Мбит - это скорость, похожая на BlueRay, и сработает). С другой стороны, если вы собираетесь транслировать его с помощью своего собственного сервера, вы должны уменьшить это значение за счет некоторого качества изображения в насыщенных сценах. Иначе сервер может не справиться с желаемой скоростью передачи битов, будучи не в состоянии доставить его пользователям в режиме реального времени. Тогда игрок столкнется с опустошением буфера (что раздражает). Сервисы обмена видео позаботятся сами о себе и, как правило, преобразуют видео в более низкие параметры за счет качества изображения.

recording-filename-000.webm- это имя файла вывода. Если вы используете расширение .webm, ffmpeg / avconv достаточно умны, чтобы понять, что вам нужен WEBM. Это так просто - avconv угадывает желаемый формат по имени файла. Так что .WEBM файлы - это WEBM внутри.

Вот и все - эта команда выполняет прямую запись экрана в файл webm. Никаких дополнительных преобразований не требуется, и libvpxнамекнут на то, чтобы быть как можно быстрее. Нет звука, так как нет спецификации для ввода звука. Это может или не может быть то, что вы хотите. Для звука вы также должны указать источник входного сигнала для звукового потока.

PS это может показаться немного сложным, но в конце дня вы можете понять, что один размер не может соответствовать всем. Таким образом, чтобы получить красивую картинку в любых ситуациях, вам, возможно, захочется использовать некоторые ручки для кодека и настроить их. Ffmpeg дает вам все ручки, которые вам могут понадобиться, и гораздо больше. Это тяжелое оружие конвертации и кодирования видео. Так что этот пример - хорошая отправная точка для тех, кто хочет делать более или менее сложные кодировки и готов немного поэкспериментировать, чтобы получить действительно приличные результаты.

датчика1
источник
6

Вы можете делать записи WebM в Ubuntu 11.10 + GNOME Shell, нажимая комбинацию клавиш Ctrl+ Shift+ Alt+ R.

Когда вы нажимаете комбо в первый раз, в области уведомлений появляется красный кружок, указывающий, что запись началась. Когда вы нажимаете его 2 раза, красный кружок исчезает, и вы сохраните запись в ${HOME}/Videosкаталоге.

Более подробная информация здесь: Шпаргалка Gnome Shell: Запись скринкаста

reygecko
источник
В то время, когда я первоначально спрашивал об этом, у меня не было оболочки GNOME. Но я использовал его для компиляции с jhbuild10.10, и он установлен на моих системах 11.10, и я знаю, что это тоже работает. Спасибо за добавление этого ответа!
Кристофер Кайл Хортон
В текущей версии (с использованием 16.04) видео хранятся ~/Videosс именем файла Screencast from {date} {time}.webm.
Карим
3

Используйте приложение Transmageddon, чтобы сделать это. его приложение на основе Gstreamer

sudo apt-get install transmageddon или нажмите здесь, чтобы установить Transmageddon

alz3abi
источник
Я посмотрел на зависимости для transmageddon через sudo apt-get install, и упомянутый выше пакет gstreamer-plugins-ugly был включен в список. Опять же, я не уверен, является ли это законным для меня, и это важно для меня.
Кристофер Кайл Хортон
2

Используйте Kazam для записи.

Вывод mkv , и хорошо работает с Youtube. Кажется, единственная проблема, которую Казам давно не обновлял.

Кстати, вы должны быть в безопасности, используя Tibesti, если я правильно понимаю, если, конечно, вы абсолютно не параноидально, что какой-то гигантский инопланетный космический корабль похитит вас и будет пытать вас за использование программного обеспечения ...

RolandiXor
источник
Kazam просит установить ffmpeg во время sudo apt-get install, и я не уверен, смогу ли я использовать его на законных основаниях.
Кристофер Кайл Хортон
@ Warrioring64, я не думаю, что ffmpeg является незаконным ...
RolandiXor
Это то, о чем мне нужно беспокоиться, так как я нахожусь в США, и здесь действуют патенты на программное обеспечение. Пожалуйста, посмотрите эту часть в Википедии, если она может помочь вам понять, что я получаю здесь.
Кристофер Кайл Хортон
2
@ Warrioring64 - версия, включенная в Ubuntu, лишена этих кодеков.
RolandiXor
Хорошо ... но, просматривая приведенные зависимости, я также обнаружил libavcodec-extra-52 и libavutil-extra-52, что из-за немного большего количества исследований, которые я обнаружил, может создать проблемы для меня. Извините, если мне покажется, что это немного сложно, но даже если меня не поймают на практике за использование такого программного обеспечения, я все равно не хотел бы, чтобы это было на моей совести.
Кристофер Кайл Хортон
2

11.10 и ранее

ffmpegможет использоваться для преобразования .ogv в .webm напрямую без необходимости использования дополнительных кодеков. Как упоминалось в комментарии к другому ответу , версия, ffmpegпоставляемая Ubuntu, не поставляется по умолчанию с кодеками, которые могут создавать проблемы с патентами на программное обеспечение.

Это программа командной строки; чтобы использовать его, просто откройте окно терминала и введите:

ffmpeg -i input.ogv output.webm
Кристофер Кайл Хортон
источник
Да. Я просто установил ffmpeg без репозитория medibuntu, и он вытащил все бесплатные версии пакетов, и я легко закодировал wmv в webm с помощью ffmpeg -i file.wmv -f webm -sameq file.webm
duffydack
1

IMO, лучший способ конвертировать видео в WebM - Firefogg .

  • Это плагин Firefox (так что это мультиплатформенный инструмент, как Firefox)
  • Он будет сжат до формата WebM (с открытым исходным кодом - веб-совместимый кодек)
  • Он предлагает несколько размеров кодирования (очень удобно придумать лучший коэффициент сжатия)
  • ДЕЙСТВИТЕЛЬНО эффективная степень сжатия (не менее, чем H264)
  • Это супер просто в использовании

введите описание изображения здесь

Sulliwane
источник