gravando_um_video_tutorial
Diferenças
Aqui você vê as diferenças entre duas revisões dessa página.
Próxima revisão | Revisão anterior | ||
gravando_um_video_tutorial [2016/03/10 14:41] – Criou página com '==No Linux== Usando ffmpeg para gravar a tela Usando audacity ou o próprio ffmpeg para o áudio Usando um script para já colocar legenda na tela <pre>#!/bin/bash # Script …' cartola | gravando_um_video_tutorial [2016/12/05 10:31] (atual) – /* Legendas direto na tela */ cartola | ||
---|---|---|---|
Linha 1: | Linha 1: | ||
+ | |||
+ | ====== No Windows ====== | ||
+ | |||
+ | |||
+ | Existem muitas opções de softwares para gravação de vídeos da tela e que servem para a criação de um tutorial. | ||
+ | |||
+ | O [[http:// | ||
+ | |||
====== No Linux ====== | ====== No Linux ====== | ||
Linha 4: | Linha 12: | ||
Usando ffmpeg para gravar a tela | Usando ffmpeg para gravar a tela | ||
+ | |||
+ | < | ||
+ | </ | ||
+ | Você pode mudar algumas coisas aí. A resolução (1920x1080) a qualidade do vídeo (2 a 31, sendo 2 a melhor) ou o formato do vídeo, bastando alterar a extensão. Aqui não funcionou bem com mp4, que eu preferiria. Há também inúmeras outras opções do ffmpeg que podem ser usadas. Esse comando não grava o áudio, pra isso em geral eu uso o Audacity separadamente, | ||
Usando audacity ou o próprio ffmpeg para o áudio | Usando audacity ou o próprio ffmpeg para o áudio | ||
- | Usando um script | + | Outros softwares |
+ | * Kazam - pacotes já disponíveis para Linux ([[https:// | ||
+ | * [[http:// | ||
+ | * [[http:// | ||
+ | * [[https:// | ||
- | < | ||
- | # Script pra apresentar legendas | + | ===== Legendas direto |
- | # Pega um arquivo texto, opcionalmente com 2 idiomas, e mostra cada um | ||
- | # num canto da tela. | ||
- | # todo: testar mais idiomas: pt, en, fr, es | + | Usando esses scripts é possível já colocar legenda na tela pra gravação ao vivo. |
- | # Configuracoes | + | É necessário configurar um atalho |
- | # separador | + | |
- | s=xx | + | |
- | if [ "$1" | + | É necessário instalar a ferramenta |
- | echo | + | |
- | echo "Uso: $0 < | + | |
- | echo | + | |
- | echo " | + | |
- | echo "Uma legenda (varios idiomas) por linha" | + | |
- | echo | + | |
- | exit | + | |
- | fi | + | |
- | readarray arq < $1 | + | Primeiro script |
- | tam=$(wc -l $1 | cut -d\ -f 1) | + | #!/bin/sh |
+ | |||
+ | # Script que atua junto com o " | ||
+ | # Deve ser mapeado junto a um atalho de teclado do gerenciador de janelas. | ||
+ | # Por exemplo, no XFCE va na configuracao de teclado e associe um atalho | ||
+ | # a este comando. Toda vez que o atalho for acionado a proxima legenda aparece. | ||
+ | |||
+ | echo > / | ||
- | i=0 | + | Segundo script, a ser executado chamando o arquivo txt com as legendas em até 2 idiomas: |
- | while [ $i -lt $tam ]; do | + | #!/bin/bash |
- | # pega texto(s) | + | |
| | ||
- | # coloca | + | # EN: Script to show subtitles on screen while recording or presenting or |
- | (echo Teste de legenda | osd_cat -A center -d 3 -o 50 -f -bitstream-*-*-*-*-*-100-*-*-*-*-*-iso8859-* -c white -O 2 -u black) & (echo Teste de legenda embaixo | + | # |
- | (( i++ )) | + | # PT_BR: Script pra apresentar legendas |
- | done</code> | + | |
+ | |||
+ | # EN: Takes a text file, optionally with 2 languages, and shows each in one | ||
+ | # | ||
+ | # PT_BR: Pega um arquivo texto, opcionalmente com 2 idiomas, e mostra cada um | ||
+ | # num canto da tela ou gera os arquivos de legendas. | ||
+ | |||
+ | # A Fazer: | ||
+ | # - opcao de legenda titulo pra inicio e fim no meio da tela | ||
+ | # - testar mais idiomas: pt, en, fr, es | ||
+ | # - 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 | ||
+ | # - sair apos tocar ultima legenda | ||
+ | # - aguardar primeiro comando pra tocar primeira legenda | ||
+ | # - tratar interrupcao bruta | ||
+ | |||
+ | # | ||
+ | # Requisitos | Requisites | ||
+ | # | ||
+ | # - ffmpeg | ||
+ | # - osd_cat | ||
+ | # - 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 | ||
+ | |||
+ | # | ||
+ | # Configuracoes | Configurations | ||
+ | # | ||
+ | |||
+ | # Valores padrao | Default values | ||
+ | # separador de idiomas | language separator | ||
+ | s=" | ||
+ | # tempo que as legendas ficam na tela (em segundos) | subtitles time on screen | ||
+ | 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 | ||
+ | # tamanho da borda da legenda | subtitle border size | ||
+ | b=2 | ||
+ | # cor da legenda (em ingles, teste ao mudar) | font color | ||
+ | c=" | ||
+ | # cor da borda da legenda (em ingles, teste ao mudar) | font border color | ||
+ | r=" | ||
+ | # saida da legenda para tela (screen) ou arquivo (file) | defines output to " | ||
+ | o=" | ||
+ | |||
+ | # Obtendo valores personalizados | Getting customized settings | ||
+ | while getopts " | ||
+ | case $opt in | ||
+ | d) # altera o tempo da legenda na tela | change subtitle screen time | ||
+ | d=" | ||
+ | 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 | ||
+ | |||
+ | trap "rm -f / | ||
+ | |||
+ | # | ||
+ | # Programa principal | Main program | ||
+ | # | ||
+ | |||
+ | if [ " | ||
+ | | ||
+ | echo "Uso: $0 [-b < | ||
+ | echo | ||
+ | echo " | ||
+ | echo " | ||
+ | echo | ||
+ | exit | ||
+ | fi | ||
+ | |||
+ | readarray arq < $f | ||
+ | tam=$(wc -l $f | cut -d\ -f 1) | ||
+ | |||
+ | # calculando posicao da linha de baixo | calculating bottom subtitle position | ||
+ | offset=$(expr 5 \* $t) | ||
+ | |||
+ | i=0 | ||
+ | rm -f / | ||
+ | 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 | ||
+ | # pega texto(s) | ||
+ | t1=" | ||
+ | t2=" | ||
+ | # coloca na tela ou no arquivo | draws onscreen or write to file | ||
+ | if [ " | ||
+ | (echo " | ||
+ | | ||
+ | elif [ " | ||
+ | agora=" | ||
+ | echo $(date +%H: | ||
+ | (echo; echo $i; echo " | ||
+ | echo " | ||
+ | echo " | ||
+ | sleep $d; echo OK PARA PROXIMA | ||
+ | fi | ||
+ | (( i++ )) | ||
+ | # o " | ||
+ | if [ $i -lt $tam ]; then | ||
+ | cat /tmp/ | ||
+ | fi | ||
+ | done | ||
+ | |||
+ | kill -2 $pid 2> /dev/null | ||
+ | |||
+ | rm -f / | ||
+ | |||
+ | Instruções completas tomando como exemplo um Linux com XFCE: | ||
+ | |||
+ | * Instale o aplicativo xosd-bin | ||
+ | * Pode ser pela linha de comandos | ||
+ | * Ou via instalador gráfico | ||
+ | * Salve o primeiro script num arquivo texto | ||
+ | * Use seu editor preferido | ||
+ | * Torne o arquivo executável | ||
+ | * Abra as configurações de teclado do XFCE | ||
+ | * Associe o script à sua sequência de teclas | ||
+ | * Nota: use uma sequência ainda não utilizada | ||
+ | * Salve o segundo script em outro arquivo | ||
+ | * Note que várias coisas podem ser configuradas | ||
+ | * Torne o arquivo executável | ||
+ | * Pronto, está tudo certo | ||
+ | * É só criar um arquivo com legendas | ||
+ | * Separe com " | ||
+ | * Aqui fiz uma em PT_BR outra em EN | ||
+ | * Se quiser apenas uma, não use separador | ||
+ | * Pra usar " | ||
+ | * Pode ser mais de um caracter, por exemplo " | ||
+ | * É isso aí, bons tutoriais! | ||
+ | |||
+ | 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.1457620882.txt.gz · Última modificação: 2016/03/10 14:41 por cartola