Как получить почти совершенное экранное качество записи?

Этот будет работать со строками с пробелами в нем:

sed 's/\(@"[^"]*"\), \(@"[^"]*"\)/\2, \1/' input.txt

Как это работает:

sed - (s) tream (редактор) itor выполнит (s) ubstosute команду на каждой строке входа,
и замены \(@"[^"]*"\), \(@"[^"]*"\) с \2, \1.

\2 средства второе соответствие (от вторых фигурных скобок)
\1 средства сначала соответствуют (от первых фигурных скобок).

Фигурных скобок нужно оставить, таким образом, мы имеем \( и \). Внутри мы ищем @ символ, затем " символ и затем [^"] любые символы, отличающиеся, чем " повторенный в любое время и затем " символ.

Затем мы ожидаем , запятая сопровождается пространством и подобной второй группой для \2.

27
06.06.2013, 15:40
5 ответов

Если ваш HDD позволяет, вы можете попробовать сделать это так:

Сначала запишите несжатый файл:

ffmpeg -f x11grab -s SZ -r 30 -i :0.0 -qscale 0 -vcodec huffyuv grab.avi

здесь SZ - размер вашего дисплея (например, 1920x1080).

После этого вы можете сжать его в любое удобное для вас время:

ffmpeg -i grab.avi grab.mkv

Конечно, вы можете изменить сжатие, выбрать кодек и так далее.

24
27.01.2020, 19:39

Вы попробовали rfbroxy?

Я использую его для записи X11-screen-sessions.

Можно использовать его в режиме, где это только записывает изображение, если существует ИЗМЕНЕНИЕ.

1
27.01.2020, 19:39

Это - обходное решение, и вероятно не "почти совершенное", поскольку оно может зависеть от скорости сети или других факторов, которые могут препятствовать видеопотоку.

Используйте VNC или Teamviewer и соединитесь от Вашего ноутбука или рабочего стола к другой машине. Если Вы имеете в наличии Windows или ноутбук OSX, у Вас, вероятно, есть инструменты, которые могут записать это, и я полагаю, что teamviewer может записать саму сессию. Легко попробовать, и можно затем решить, достаточно хорошо ли качество.

Teamviewer склонен масштабироваться, но я не знаю, происходит ли это с зарегистрированными сессиями также.

VNC не сжимается или масштабируется, и Вашему монитору ноутбука/рабочего стола нужно более высокое разрешение, чем та из другой машины. Качество хорошо. Возможно, средство просмотра VNC, которое Вы используете, может записать. Я нахожусь на Ubuntu теперь, и стандартное средство просмотра не может сделать этого.

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

1
27.01.2020, 19:39

Я добился успеха с:

ffmpeg -f x11grab -video_size 1920x1080 -framerate 30 -i :1 \
       -vcodec libx264 -preset ultrafast -qp 0 -pix_fmt yuv444p \
       video.mkv

Ключевые моменты:

  • -qp 0: режим без потерь x264
  • -preset ultrafast: наименьший процессор использование, большой размер
  • -pix_fmt yuv444p: по умолчанию, но ffmpeg предлагает yuv420p, который работает с потерями

Подсказка: захват экрана и наложение веб-камеры с помощью:

ffmpeg -f x11grab -thread_queue_size 64 -video_size 1920x1080 -framerate 30 -i :1 \
       -f v4l2 -thread_queue_size 64 -video_size 320x180 -framerate 30 -i /dev/video0 \
       -filter_complex 'overlay=main_w-overlay_w:main_h-overlay_h:format=yuv444' \
       -vcodec libx264 -preset ultrafast -qp 0 -pix_fmt yuv444p \
       video.mkv

https://trac.ffmpeg.org/wiki/Capture / Desktop

[edit 20180418] Обновление для Gnome Shell и Wayland:

#!/usr/bin/env python3
from dbus import SessionBus, Interface
from os import getcwd, path
from sys import argv

BUS_NAME = 'org.gnome.Shell.Screencast'
PATH_NAME = '/org/gnome/Shell/Screencast'
INTERFACE_NAME = BUS_NAME
PIPELINE='x264enc pass=qual quantizer=0 speed-preset=ultrafast ! queue ! matroskamux'

if path.isabs(argv[1]):
    name = argv[1]
else:
    name = path.join(getcwd(), argv[1])

bus = SessionBus()
screen_cast = bus.get_object(BUS_NAME, PATH_NAME)
screen_cast = Interface(screen_cast, INTERFACE_NAME)

ret, name = screen_cast.Screencast(name, {'pipeline': PIPELINE})

if not ret:
    print('Error starting screencast.')
    raise SystemExit(1)

try:
    i = input()
except (EOFError, KeyboardInterrupt):
    pass
finally:
    screen_cast.StopScreencast()
6
27.01.2020, 19:39

Я использую Camtasia для записи игрового видео и онлайн-видео. Раньше я также использовал видеомагнитофон fraps, но во время игры падает fps. Camtasia дает более высокий fps, но единственная неприятная проблема заключается в том, что каждый раз, когда я должен преобразовывать выходной.CAMREC в avi, как вы можете видеть в введите описание ссылки здесьвведите описание ссылки здесь ..camrec является собственным форматом camtasia и не может воспроизводиться никакими сторонними -проигрывателями, такими как Windows Media Player и vlc.

0
27.01.2020, 19:39

Теги

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