gravando_um_video_tutorial
Diferenças
Aqui você vê as diferenças entre duas revisões dessa página.
Ambos lados da revisão anteriorRevisão anteriorPróxima revisão | Revisão anterior | ||
gravando_um_video_tutorial [2016/03/26 19:55] – /* No Linux */ cartola | gravando_um_video_tutorial [2016/12/05 10:31] (atual) – /* Legendas direto na tela */ cartola | ||
---|---|---|---|
Linha 18: | Linha 18: | ||
Usando audacity ou o próprio ffmpeg para o áudio | Usando audacity ou o próprio ffmpeg para o áudio | ||
+ | |||
+ | Outros softwares para captura da tela: | ||
+ | * Kazam - pacotes já disponíveis para Linux ([[https:// | ||
+ | * [[http:// | ||
+ | * [[http:// | ||
+ | * [[https:// | ||
Linha 42: | Linha 48: | ||
#!/bin/bash | #!/bin/bash | ||
| | ||
- | # Script pra apresentar legendas na tela durante gravacao de video | + | # EN: Script to show subtitles on screen while recording or presenting or |
+ | # | ||
+ | # PT_BR: | ||
+ | # gerar arquivos com legendas. | ||
| | ||
- | # Pega um arquivo texto, opcionalmente com 2 idiomas, e mostra cada um | + | # EN: Takes a text file, optionally with 2 languages, and shows each in one |
- | # num canto da tela. | + | # |
+ | # PT_BR: | ||
+ | # num canto da tela ou gera os arquivos de legendas. | ||
| | ||
- | # todo: | + | # A Fazer: |
+ | # - opcao de legenda titulo pra inicio e fim no meio da tela | ||
# - testar mais idiomas: pt, en, fr, es | # - testar mais idiomas: pt, en, fr, es | ||
# - tratar tamanho para passar pra proxima linha | # - tratar tamanho para passar pra proxima linha | ||
+ | # - publicar (github, sf, ...) | ||
+ | # - melhorar o inicio/fim de gravacao (expect?) | ||
+ | # - tirar dependencias externas: video_tela.sh | ||
+ | # - entender e tratar os n idiomas de entrada. Hoje ta hardcoded pra 2. Pode vir na primeira linha do arquivo, inclusive os nomes dos arq de saida | ||
+ | # Feito: | ||
# - mapear atalho de teclado pra passar pra proxima | # - mapear atalho de teclado pra passar pra proxima | ||
+ | # - sair apos tocar ultima legenda | ||
+ | # - aguardar primeiro comando pra tocar primeira legenda | ||
+ | # - tratar interrupcao bruta | ||
| | ||
- | # Configuracoes | + | |
- | # separador de idiomas | + | # Requisitos | Requisites |
- | s="xxx" | + | # |
- | # tempo que as legendas ficam na tela (em segundos) | + | # - ffmpeg |
- | d=4 | + | # - osd_cat |
- | # tamanho da fonte a ser usada (achei 80 bom para fullHD) | + | # - Para gerar legendas direto no video. Se for gerar apenas arquivos srt nao eh preciso. |
+ | # - To generate onscreen subtitles to be directly recorded. To generate srt files it's not necessary. | ||
+ | # - proxima_legenda.sh | ||
+ | # - ter o programa | ||
+ | # - configurar atalho de teclado no Window Manager (ex: xfce, Kde, Gnome, ...) para rodar proxima_legenda.sh | ||
+ | |||
+ | # | ||
+ | | ||
+ | # | ||
+ | |||
+ | # Valores padrao | Default values | ||
+ | # separador de idiomas | ||
+ | s="|" | ||
+ | # tempo que as legendas ficam na tela (em segundos) | ||
+ | d=5 | ||
+ | # tamanho da fonte a ser usada (achei 80 bom para Full HD) | font size (I found 80 good with Full HD) | ||
t=80 | t=80 | ||
- | # tamanho da borda da legenda | + | # tamanho da borda da legenda |
- | b=3 | + | b=2 |
- | # cor da legenda (em ingles, teste ao mudar) | + | # cor da legenda (em ingles, teste ao mudar) |
c=" | c=" | ||
- | # cor da borda da legenda (em ingles, teste ao mudar) | + | # cor da borda da legenda (em ingles, teste ao mudar) |
- | | + | |
+ | # saida da legenda para tela (screen) ou arquivo (file) | defines output to " | ||
+ | o=" | ||
| | ||
- | | + | |
+ | while getopts | ||
+ | case $opt in | ||
+ | d) # altera o tempo da legenda na tela | change subtitle screen time | ||
+ | d="$OPTARG" | ||
+ | b) # espessura da borda da legenda | sibtitle border thickness | ||
+ | b=" | ||
+ | f) # nome do arquivo de legendas | subtitles file name | ||
+ | f=" | ||
+ | t) # tamanho da borda | border size | ||
+ | t=" | ||
+ | c) # cor da fonte | font color | ||
+ | c=" | ||
+ | r) # cor da borda | border color | ||
+ | r=" | ||
+ | s) # separador | separador | ||
+ | s=" | ||
+ | o) # define saida na tela " | ||
+ | o=" | ||
+ | esac | ||
+ | done | ||
| | ||
- | if [ "$1" = "" | + | |
+ | |||
+ | # | ||
+ | # Programa principal | Main program | ||
+ | # | ||
+ | |||
+ | | ||
echo | echo | ||
- | echo "Uso: $0 < | + | echo "Uso: $0 [-b < |
echo | echo | ||
echo " | echo " | ||
Linha 78: | Linha 141: | ||
fi | fi | ||
| | ||
- | readarray arq < $1 | + | readarray arq < $f |
- | tam=$(wc -l $1 | cut -d\ -f 1) | + | tam=$(wc -l $f | cut -d\ -f 1) |
| | ||
- | # calculando posicao da linha de baixo | + | # calculando posicao da linha de baixo | calculating bottom subtitle position |
offset=$(expr 5 \* $t) | offset=$(expr 5 \* $t) | ||
| | ||
Linha 87: | Linha 150: | ||
rm -f / | rm -f / | ||
mkfifo / | mkfifo / | ||
+ | | ||
+ | # Aguarda o primeiro comando de disparo de legendas | ||
+ | # Wait first subtitle command shot | ||
+ | cat / | ||
+ | | ||
+ | # inicia a gravacao | starts recording | ||
+ | teste=" | ||
+ | if [ " | ||
+ | num=01 | ||
+ | else | ||
+ | num=`expr $teste + 1 | awk ' | ||
+ | fi | ||
+ | ffmpeg -f x11grab -s 1920x1080 -r 12000/1001 -i :0.0 -q:v 2 meuVideo-$num.avi > /dev/null 2>&1 & | ||
+ | pid=" | ||
+ | | ||
+ | if [ " | ||
+ | # guardando momento inicial para calcular tempos | saving initial moment to calculate times | ||
+ | inicio=" | ||
+ | fi | ||
+ | | ||
while [ $i -lt $tam ]; do | while [ $i -lt $tam ]; do | ||
# pega texto(s) | # pega texto(s) | ||
t1=" | t1=" | ||
t2=" | t2=" | ||
- | # coloca na tela | + | # coloca na tela ou no arquivo | draws onscreen or write to file |
- | (echo " | + | |
- | echo " | + | |
+ | echo " | ||
+ | elif [ " | ||
+ | agora=" | ||
+ | echo $(date +%H: | ||
+ | (echo; echo $i; echo " | ||
+ | echo " | ||
+ | echo " | ||
+ | sleep $d; echo OK PARA PROXIMA | ||
+ | fi | ||
(( i++ )) | (( i++ )) | ||
# o " | # o " | ||
Linha 100: | Linha 192: | ||
fi | fi | ||
done | done | ||
+ | | ||
+ | kill -2 $pid 2> /dev/null | ||
| | ||
rm -f / | rm -f / | ||
Linha 127: | Linha 221: | ||
Veja o tutorial de uso dos scripts em vídeo feito usando ele e os passos descritos acima! | Veja o tutorial de uso dos scripts em vídeo feito usando ele e os passos descritos acima! | ||
+ | |||
+ | https:// | ||
+ | |||
+ | E aqui um tutorial feito com ele. Neste eu coloquei outro atalho de teclado para colocar um fundo preto na tela com o gthumb, fazendo títulos de entrada e saída do vídeo. | ||
+ | |||
+ | https:// | ||
gravando_um_video_tutorial.1459022106.txt.gz · Última modificação: 2016/03/26 19:55 por cartola