Commit 583d8182 authored by Harald Sitter's avatar Harald Sitter

new helpers to encode videos

parent 6b68bf00
#!/usr/bin/env ruby
# frozen_string_literal: true
#
# Copyright (C) 2018 Harald Sitter <sitter@kde.org>
#
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
# License as published by the Free Software Foundation; either
# version 2.1 of the License, or (at your option) version 3, or any
# later version accepted by the membership of KDE e.V. (or its
# successor approved by the membership of KDE e.V.), which shall
# act as a proxy defined in Section 6 of version 3 of the license.
#
# This library is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public
# License along with this library. If not, see <http://www.gnu.org/licenses/>.
require 'tty/command'
cmd = TTY::Command.new
pkg = 'imagemagick'
unless TTY::Command.new(printer: :null).run!('dpkg', '-s', pkg).success?
cmd.run!('apt-get', 'update')
cmd.run('apt-get', 'install', '-y', pkg)
end
# Convert screenshots to gif.
cmd.run('convert', '-delay', '50',
'wok/qemuscreenshot/*.png',
'wok/video.gif')
#!/usr/bin/env ruby
# frozen_string_literal: true
#
# Copyright (C) 2018 Harald Sitter <sitter@kde.org>
#
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
# License as published by the Free Software Foundation; either
# version 2.1 of the License, or (at your option) version 3, or any
# later version accepted by the membership of KDE e.V. (or its
# successor approved by the membership of KDE e.V.), which shall
# act as a proxy defined in Section 6 of version 3 of the license.
#
# This library is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public
# License along with this library. If not, see <http://www.gnu.org/licenses/>.
require 'tty/command'
files = Dir.glob('wok/qemuscreenshot/*.png').reject { |x| File.symlink?(x) }
cmd = TTY::Command.new
pkg = 'ffmpeg'
unless TTY::Command.new(printer: :null).run!('dpkg', '-s', pkg).success?
cmd.run!('apt-get', 'update')
cmd.run('apt-get', 'install', '-y', pkg)
end
# Concat all files and encode as webm.
cmd.run('ffmpeg',
'-r', '1',
'-f', 'concat', '-safe', '0', '-i', '-',
'-vf', 'fps',
'-y',
'wok/video.webm',
input: files.collect { |x| "file '#{Dir.pwd}/#{x}'" }.join("\n"))
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment