mirror of
git://git.savannah.gnu.org/guix/videos.git
synced 2024-12-29 11:40:23 +01:00
9cc73f3674
* build-video.sh: New file. * helper.sh: New file. * README: Document the new workflow.
243 lines
8.3 KiB
Text
243 lines
8.3 KiB
Text
* INTRODUCTION
|
|
################ THIS IS A WIP README, will be improved in the
|
|
following iterations.########################
|
|
---------------------------------------------------------------------------
|
|
|
|
NOTE: to build the videos run: build-video.sh.
|
|
This script has two modes, if a video directory is supplied as an argument,
|
|
then that video will be build. If no argument is supplied, it will attempt
|
|
to build all videos. If additional top level directories are created in
|
|
the repository, which are not video directories, then this script needs
|
|
to be adjusted.
|
|
|
|
NOTE: to work on the videos run the following scripts, in this order:
|
|
environment.sh
|
|
install-fonts.sh.
|
|
This sets up a development environment.
|
|
|
|
To build a video in the development envionment run the buildall.sh in the
|
|
video directory.
|
|
|
|
In the latter case, the script will take some time to execute, so please,
|
|
don't cancel it unless you want to stop the video creation.
|
|
Bellow you will find the explanation for each step inside these scripts.
|
|
|
|
----------------------------------------------------------------------------
|
|
|
|
The idea is to help you in the video creation steps. Each video will
|
|
be composed of slide videos showing concepts - a.k.a noCli -
|
|
and might have videos with command line prompts in between -a.k.a cli).
|
|
All of these videos will then be glued together into the final video
|
|
for a certain topic. We are including here an example video, so that
|
|
you can see everything in action, as well as help us testing if you
|
|
find a bug.
|
|
In addition, videos will be able to be translated to other languges,
|
|
so we are taking this into account.
|
|
We are adding sections of how the tree structure of the project
|
|
might look like, how to create the nonClis, Clis and the final video,
|
|
how to clean everything to go on trying, and an example of
|
|
how to run several makes to have a final working example video.
|
|
|
|
If you want to see how to create a nonCli video: please
|
|
go to RUNNING MAKE FOR CREATING A VIDEO THAT SHOWS SLIDES
|
|
If you want to create a cli video:
|
|
RUNNING MAKE FOR CREATING A VIDEO THAT SHOWS CLI
|
|
If you cant to create the final video: RUNNING MAKE FOR CREATING FINAL VIDEO
|
|
And if you want to know how to work with the translation process:
|
|
RUNNING MAKE FOR TRANSLATIONS.
|
|
|
|
NOTE FOR TRANSLATIONS:
|
|
1) Recall copying the .pot files under example/es_AR/pots
|
|
that simulate the ones already translated from /example/en_US/pots/
|
|
2) As regards screen script, run it and copy/paste the output
|
|
video from en_US locale, since translation of these is under discussion.
|
|
3) Copy paste session files from <video>/en_US/sessions/* to
|
|
the locale's same dir. ie: <video>/es_AR/sessions/. Then run
|
|
createVideoCli.sh
|
|
|
|
NOTE FOR SUBTITLES:
|
|
At the moment, the subtitle files worked for the first iteration
|
|
of the project,when one video was made, so avoid using them.
|
|
|
|
* TREE
|
|
|
|
The TREE up to now looks like this. audio, svgs, subtitles, pots
|
|
(for other locales rather than en_US) *MUST BE MANUALLY POPULATED*.
|
|
|
|
/
|
|
|-README
|
|
|-Makefile
|
|
|-screen
|
|
|-createVideoCli
|
|
|-<videoName>
|
|
|-slidesList.mk
|
|
|-en_US
|
|
| |-audios/
|
|
| |-svgs/
|
|
| |-slides/
|
|
| |-subtitles/
|
|
| |-pots/ #not translated
|
|
| |-translationsFiles/ #.mo and .po *ONLY* for this locale
|
|
| |-out/
|
|
| |-videos/
|
|
|
|
|
|-<locale>:ie: es_AR
|
|
|-audios/
|
|
|-svgs
|
|
|-pots/ #translated
|
|
|-slides/
|
|
|-subtitles/
|
|
|-out/
|
|
|-videos/
|
|
|
|
|
|
* RUNNING MAKE FOR CREATING A VIDEO THAT SHOWS CLI
|
|
|
|
We have created a shell script that automates this process. It calls
|
|
the guile script as well as the a make command, to avoid running them
|
|
separately.
|
|
To create these videos you should run under the root directory:
|
|
|
|
** ./creacteVideoCli.sh <videoName> <locale> <sessionFilename>
|
|
<numberOfCLIVideo>
|
|
|
|
VIDEO=name of the final video ie:example.
|
|
LOCALE_LANG=locale for which the video is being created.Defaule en_US
|
|
NUMBER: number that indicates the order in which the video will be shown.
|
|
ie: if NUMBER=2 it is the second CLI video that will be included in VIDEO.
|
|
|
|
NOTE: all the arguments ARE MANDATORY for now.
|
|
|
|
Example: ./createCliVideo.sh example en_US firstCli 1
|
|
|
|
* RUNNING MAKE FOR CREATING A VIDEO THAT SHOWS SLIDES
|
|
|
|
** make videoNoCli VIDEO=<videoName> LOCALE_LANG=<locale>
|
|
NUMBER=<numberOfNoCLIVideo>
|
|
|
|
Example: make videoNoCli VIDEO=example LOCALE_LANG=en_US NUMBER=1
|
|
|
|
Creates a piece of video that shows slides. If omitted, the default video
|
|
is used and the locale is considered en_US.
|
|
|
|
IMPORTANT: THE NAME OF THE AUDIO FILE THAT MATCHES EACH SLIDE ***MUST***
|
|
BE THE SAME. For instance, if our cond slide video is composed by 4.svg,
|
|
5.svg and 6.svg, we will need 4.mp3 5.mp3 5.mp3 files, even our NUMBER
|
|
argument is 2, since that means the number of noCLIVideo we are creating,
|
|
NOT its files,
|
|
|
|
|
|
* RUNNING MAKE FOR CREATING FINAL VIDEO
|
|
|
|
There are two ways of creating a final video:
|
|
|
|
** make finalvideo VIDEO=<video> LOCALE_LANG=<locale>
|
|
|
|
Creates a the final video with their own audio.
|
|
|
|
** make finalvideoNoSound VIDEO=<video> LOCALE_LANG=<locale>
|
|
|
|
Creates the same final video similar to the one above but without sound,
|
|
four our in progress state.
|
|
|
|
|
|
* RUNNING MAKE FOR TRANSLATIONS
|
|
|
|
** make pots_for_video NUMBER=<numberOfNoCliVideo>
|
|
|
|
Creates the .pots only under en_US locale subdir foy the number of
|
|
noCli video specified subdir to send them to translators.
|
|
|
|
Example: make pots_for_video NUMBER=2
|
|
(creates .pot files for nonCli video number 2)
|
|
|
|
* CREATE SVGS FOR BEING ABLE TO RUN LATER MAKE FOR CREATING VIDEOS FOR
|
|
OTHER LOCALE RATHER THAN en_US
|
|
|
|
** make slides VIDEO=<videoName> LOCALE_LANG=<locale>
|
|
|
|
Creates the translated slides, once the .pot files return from translators,
|
|
so that they can be used for other locales rather than en_US.
|
|
The locale subdir, at least <locale>/slides must be created beforehand.
|
|
LOCALE_LANG is MANDATORY
|
|
|
|
|
|
* RUNNING MAKE CLEAN
|
|
|
|
** make clean VIDEO=<video> LOCALE_LANG=<locale>
|
|
|
|
Cleans all the files related to video creation and translation.
|
|
It calls all the other clean_* options.
|
|
If none VIDEO provided, it cleans the DEFAULT,
|
|
and if no LOCALE_LANG provided, it cleans en_US.
|
|
|
|
Example: make clean VIDEO=example LOCALE_LANG=en_US
|
|
|
|
** make clean_noCli VIDEO=<video> LOCALE_LANG=<locale>
|
|
|
|
Cleans all the intermediate videos that do not show CLI commands..
|
|
If none VIDEO provided, it cleans the ones that belong to the default video,
|
|
and if no LOCALE_LANG provided, it cleans en_US ones.
|
|
|
|
Example: make clean_noCli VIDEO=example LOCALE_LANG=en_US
|
|
|
|
** make clean_cli VIDEO=<video> LOCALE_LANG=<locale>
|
|
|
|
Cleans all the intermediate videos that do show CLI commands.
|
|
If none VIDEO provided, it cleans the ones that belong to the default video,
|
|
and if no LOCALE_LANG provided, it cleans en_US ones.
|
|
|
|
Example: make clean_cli VIDEO=example LOCALE_LANG=en_US.
|
|
|
|
** make clean_intermediate_videos VIDEO=<video> LOCALE_LANG=<locale>
|
|
|
|
Cleans all the intermediate videos, both slides and cli sessions.
|
|
If none VIDEO provided, it cleans the ones that belong to the default video,
|
|
and if no LOCALE_LANG provided, it cleans en_US ones.
|
|
|
|
Example: make clean_intermediate_videos VIDEO=example LOCALE_LANG=en_US.
|
|
|
|
** make clean_finalVideo VIDEO=<video> LOCALE_LANG=<locale>
|
|
|
|
Cleans the final video, that glues all the intermediate videos, b
|
|
ut NOT the INTERMEDIATE ones.
|
|
If none VIDEO provided, it cleans the one that belong to the default video,
|
|
and if no LOCALE_LANG provided, it cleans en_US ones.
|
|
|
|
** make clean_pots VIDEO=<video>
|
|
|
|
Cleans the .pot files to send to translators for the given video.
|
|
If video not provided, it uses the default one.
|
|
|
|
Example: make clean_pots VIDEO=example
|
|
|
|
** make clean_locale_slides VIDEO=<video> LOCALE_LANG=<LOCALE>
|
|
|
|
Cleans the translation files - *.po and *.mo inside the en_US subdir
|
|
for the video ( if VIDEO is not provided, it uses the default one)
|
|
BUT LOCALE_LANG is *MANDATORY*, if it is not given, make aborts.
|
|
|
|
|
|
* EXAMPLE
|
|
|
|
For the example video we have five pieces of video: three nonCli with two
|
|
CLI sessions in between. We have to create them first, to then be able to
|
|
glue them. Run the commands as shown here.
|
|
|
|
#First noncli video:
|
|
make videoNoCli VIDEO=example LOCALE_LANG=en_US NUMBER=1
|
|
|
|
#first CLI video, with audio
|
|
./createCliVideo.sh example en_US firstCli 1
|
|
|
|
#second nonCLI video
|
|
make videoNoCli VIDEO=example LOCALE_LANG=en_US NUMBER=2
|
|
|
|
#second CLI video
|
|
./createCliVideo.sh example en_US firstCli 1
|
|
|
|
#second noncli video,
|
|
make videoNoCli VIDEO=example LOCALE_LANG=en_US NUMBER=3
|
|
|
|
#finally we end up with the final video:
|
|
make finalVideo --> output example.webm under /videos subdir.
|