Group: Guix/Video Documentation
Contents
GNU Guix Video Documentation
During Outreachy phase 2018/2019 Laura Lazzati is creating video documentations for Guix. This page collects ideas about that project
Timeline
ORW=Outreachy-Week CWeek = Calendar week (in ISO8601)
ORW | CWeek | Monday | Task |
1 | 49 | 03.12. |
|
2 | 50 | 10.12. |
|
3 | 51 | 17.12. |
|
4 | 52 | 24.12. |
|
5 | 1 | 31.12. |
|
6 | 2 | 07.01. |
|
7 | 3 | 14.01. |
|
8 | 4 | 21.01. |
|
9 | 5 | 28.01. |
|
10 | 6 | 04.02. |
|
11 | 7 | 11.02. |
In my case I could try doing so in Spanish, but if any other translator could try it |
12 | 8 | 18.02. |
|
13 | 9 | 25.02. |
|
First Idea
A first proposal came from Ricardo:
https://lists.gnu.org/archive/html/guix-devel/2018-11/msg00386.html
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)
Slides can be in root directory
- create the translation subdir:
mkdir de
- extract texts as gettext template
#1.svg is out first svg file itstool -o de/1.pot 1.svg
- initialize translation (e.g. for German):
#We need to add the name of the output file and where it is located because by default msginit creates one with the #locale name (de.po)and then it complains that de.po already exists for the next slide msginit --locale=de --input=de/1.pot -o de/1.po
- translate texts in “de.po”
- compile “de.po” to “de.mo” binary format:
#Recall filenames cd de msgfmt 1.po -o 1.mo
- use itstool to create a translated SVG:
#Take into account that the .svg we are merging is the first one the translation. Since there was a `cd de` before, #we don't need the -o argument itstool -l de -m 1.mo ../1.svg
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.
Discussion about videos, apart from those mentioned in Outreachy site or in more detail
- Focus on more practical howtos aimed at people new to guix.
- installing guix on a foreign distro
- installing guixsd
- using guix: installing, upgrading and removing packages
- guix pull
- MAYBE guix gc
- Developers (not guix, but general devs)
- environments vs profiles
- developing on guixsd
- "getting back to work" when something goes wrong
- roll-back profile, system-profile, guix