guix-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Outreachy project infrastructure


From: Ricardo Wurmus
Subject: Re: Outreachy project infrastructure
Date: Wed, 21 Nov 2018 16:19:17 +0100
User-agent: mu4e 1.0; emacs 26.1

Hi Gábor,

> Now we can start thinking about what tools to use […]
> It would be nice if someone with more exprerience in translating
> documentation, or even videos could also comment on this. Anyone?

I would like to recommend this workflow:

- create an environment:

    guix environment --ad-hoc inkscape gettext itstool ffmpeg

- create slides in Inkscape (look at existing slides from past talks for
  style inspiration)

- extract texts as gettext template:

    itstool -o slide.pot slide.svg

- initialize translation (e.g. for German):

    msginit --locale=de --input=slide.pot

- translate texts in “de.po”

- compile “de.po” to “de.mo” binary format:

    msgfmt de.po -o de.mo

- use itstool to create a translated SVG:

    itstool -l de -m de.mo drawing.svg -o de/

This can be automated with a Makefile.

Translations themselves don’t have to be created as part of this
project, but the pot files should be uploaded to the
translationproject.org, which is what we already do for other Guix
translations.

Once we’ve got the SVGs we can render them as PNGs in the desired output
format with Inkscape (here as a Makefile rule):

    %.png: %.svg
        inkscape -z --export-dpi=300 --export-png=$@ $<

Then write a simple concat demuxer file for ffmpeg to specify which
slide to show for how long, e.g. this ’durations.txt’:

--8<---------------cut here---------------start------------->8---
file 'slide1.png'
duration 5
file 'slide2.png'
duration 1
file 'slide3.png'
duration 3
file 'end.png'
duration 2
file 'end.png'
--8<---------------cut here---------------end--------------->8---

(According to the ffmpeg docs the last image has to be specified twice,
the second time without a duration.)

Then compile this as a video:

    ffmpeg -f concat -i durations.txt -vsync vfr -pix_fmt yuv420p output.mp4

(The above was taken from here: https://trac.ffmpeg.org/wiki/Slideshow)

With a slightly longer invocation we can merge an existing audio file
into the output file (no need for a second call to ffmpeg).

I haven’t given much thought to subtitles yet.  We could use the very
simple “srt” format, which is just plain text, but maybe “usf” is
better.  It has support for styling and Unicode, and its format is XML,
which means that we can use the same tools as above to handle
translations.

What do you think?

Laura, would you like to give this a try and play a little with these
tools to see if this is feasible?  You could take a few of the SVG files
from ./talks/icg-2018 from the guix-maintenance.git repository.  Do you
have a copy of this repository already?

--
Ricardo




reply via email to

[Prev in Thread] Current Thread [Next in Thread]