Gnome 3.10 ScreenCast + аудио на дуге

Причина та установка command-not-found не начинал обеспечивать, предложения для неустановленных пакетов был то, что я пропустил маленькое уведомление от dpkg как часть установки.

Каждый, как предполагается, выполняет команду update-command-not-found сразу после выполнения apt-get install command-not-found. На самом деле dpkg запрашивает выполнение этой команды.

5
13.04.2017, 15:22
2 ответа

Этот ключ/схема был удален в gnome-shell ≥ 3.10, поэтому решения, которые вы нашли в интернете, больше не работают.
Рэй Строуд, разработчик gnome dev1:

Несколько человек спросили меня, есть ли способ сделать это в gnome-shell 3.10 и более поздних версиях, и у меня не было хорошего ответа. Это осложняется тем фактом, что g-s-d теперь обрабатывает запуск вещей и схема org.gnome.shell.recorder исчезла. Предложение

Рэя (назначить ярлык на команду gjs) довольно круто, но в его строке не хватает js. Мне пришлось заменить %T в threads=%T на число (например, 2), чтобы заставить его работать. Также обратите внимание, что имя результирующего файла .webm не имеет временной метки, поэтому последующие запуски будут перезаписывать существующий файл, если вы не переименуете его. Наконец, убедитесь, что ваш XDG_VIDEOS_DIR определен в ~/.config/user-dirs.dirs, иначе команда не будет работать (выдает ошибку cannot open output file).
В любом случае, возвращаясь к вашему вопросу, параметры кастинга экрана сейчас жестко закодированы в gnome-shell (shell-recorder.c), например:

#define DEFAULT_PIPELINE "vp9enc min_quantizer=13 max_quantizer=13 cpu-used=5 deadline=1000000 threads=%T ! queue ! webmmux"

или

shell_recorder_init (ShellRecorder *recorder)
{
....
recorder->draw_cursor = TRUE;

и, насколько я могу судить, единственный способ изменить их - это использовать расширение типа

EasyScreenCast

(исходный код здесь), которое позволяет вам настроить все параметры (включая draw-cursor). Работает отлично, мне только пришлось добавить свою версию gnome-shell, например 3.16.1 - в metadata. json и этот пользовательский gstreamer конвейер:

vp8enc  min_quantizer=10 max_quantizer=10 cpu-used=2 deadline=1000000  threads=2 ! queue ! mux. pulsesrc ! queue !  audioconvert ! vorbisenc ! queue ! mux. webmmux name=mux

через Tweak-tool > Extensions > Easyscreencast > Screencast options:

enter image description here


Это не считая того, тривиальный способ скринкастинга + внутренний звук - через командную строку. Все, что вам нужно, это указать источник входного сигнала для записи звука - либо с помощью pacmd (cli), либо с помощью pavucontrol (gui) и использовать gst-launch для записи. Итак, сначала получите имя источника ввода, заканчивающееся на .monitor (этот источник может записывать звук с вашей звуковой карты):

pacmd list-sources | sed -n 's/name: <\(.*\.monitor\)>/\1/p'
    alsa_output.pci-0000_00_1b.0.analog-stereo.monitor

а затем запустите:

pacmd set-default-source "alsa_output.pci-0000_00_1b.0.analog-stereo.monitor"
gst-launch-1.0 ximagesrc ! videoconvert ! queue ! videorate ! vp8enc  min_quantizer=10 max_quantizer=10 cpu-used=2 deadline=1000000  threads=2 ! queue ! mux. pulsesrc ! queue !  audioconvert ! vorbisenc ! queue ! mux. webmmux name=mux ! filesink location=screencast.webm

Чтобы остановить запись, переключитесь обратно в терминал и нажмите Ctrl+C.


1: source

6
27.01.2020, 20:35

На основе ответа DON_CRISSTI я создал скрипт Bash для автоматизации этой задачи.

Вот сценарий:

#!/bin/bash

if [ -z $1 ]; then
    echo "usage: screencast <outfile>"
    exit 1
fi

fname=$1
audio=$(pacmd list-sources | sed -n 's/\s*name: <\(.*\.monitor\)>/\1/p')

pacmd set-default-source "$audio"

echo "Screencast started, to stop it come back to terminal and hit ctrl+c..."

gst-launch-1.0 ximagesrc \
    ! videoconvert \
    ! queue \
    ! videorate \
    ! vp8enc  min_quantizer=10 max_quantizer=10 cpu-used=2 deadline=1000000  threads=2 \
    ! queue \
    ! mux. pulsesrc \
    ! queue \
    !  audioconvert \
    ! vorbisenc \
    ! queue \
    ! mux. webmmux name=mux \
    ! filesink location=$fname > /dev/null

echo
echo "Screencast saved as $fname"

Использование:

$ ./screencast out_file_name.webm

Все кредиты переходят на don_crissti. Пожалуйста, проголосуйте его ответ!

3
27.01.2020, 20:35

Теги

Похожие вопросы