playleg
dez 1st, 2008 by Fernando Scherrer
Trata-se de um pequeno shell script que utilizo para reproduzir vídeos com legenda, com o intúito de adicionar uma faixa preta abaixo do vídeo onde a legenda aparecerá, não atrapalhando assim o conteúdo (como é o caso quando fica por cima). Obs.: o vídeo não é cortado, apenas é adicionada uma faixa abaixo.
O script
Posto aqui um pequeno script shell que utilizo para reproduzir vídeos com legenda utilizando o mplayer, que é, na minha opnião, o melhor player multimídia.
Abaixo segue exemplo de como fica um vídeo com legenda. Somente para constar, é um trecho (00:01:00 mais especificamente) do Open Movie "Elephants Dream".
O script pode ser obtido aqui: http://www.fernando.scherrer.nom.br/wp-content/uploads/2008/12/playleg.
Costumo deixá-lo no home do meu usuário, então quando vou reproduzir algum vídeo apenas troco o comando mplayer por ~/playleg. A exemplo da imagem:
~/playleg Elephants_Dream_720-h264-st-aac.mov
Obs.: a legenda no exemplo acima está no mesmo diretório, como o mesmo nome do arquivo de vídeo, exceto pela extensão (Elephants_Dream_720-h264-st-aac.srt).
Lembre-se de dar permissão de execução ao script antes de rodá-lo (um mero chmod u+x playleg).
Parâmetros extras para o mplayer podem ser informados após o nome do arquivo de vídeo. Exemplo:
~/playleg Elephants_Dream_720-h264-st-aac.mov -ss 00:03:30
Estou deixando o código abaixo somente para o caso desejar dar uma olhada sem precisar baixar.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 | #!/bin/bash # -- Criação # Autor: Fernando Scherrer # Email: fernando.scherrer at fernando.scherrer.nom.br # Data: 2008-12-01 # Desc: Pequeno script para reprodução de vídeos com legenda utilizando o # mplayer. Obtém a altura do vídeo e adiciona uma faixa preta na parte # de baixo desse para que a legenda fique sobre e faixa e não sobre # o vídeo. # # -- Alterações # Autor: # Data: # Desc: # # Configurações # # altura da faixa preta adicionada abaixo do vídeo para a legenda ALTURA_FAIXA=64 # fonte utilizada para a legenda FONT_LEGENDA=/usr/share/fonts/TTF/luxisr.ttf # tamanho para a fonte da legenda, como porcentagem do tamanho da tela TAMANHO_LEGENDA=3 # codepage (charset) da legenda CODEPAGE_LEGENDA=latin1 # função para exibir as opções de uso uso(){ echo "Uso:" echo " $0 arquivoVideo [opções para o mplayer]" echo "Exemplos:" echo " $0 linuxHistory.avi" echo " $0 linuxHistory.avi -ss 00:12:30" } # # Script # # arquivo passado para a reprodução ARQUIVO="$1" # se não foi informado ao menos um parâmetro (esperado vídeo), ou foi # passado -h ou --help exibe as instruções de uso e sai if [ -z "$ARQUIVO" -o "$ARQUIVO" == "-h" -o "$ARQUIVO" == "--help" ]; then uso exit 1 fi # altura do vídeo ALTURA_VIDEO=$(mplayer -identify "$ARQUIVO" -ao null -vo null -frames 0 \ | grep VIDEO: | cut -d" " -f5 | cut -dx -f2) # altura total (altura do vídeo + altura da faixa para a legenda) ALTURA_TOTAL=$(( $ALTURA_FAIXA + $ALTURA_VIDEO )) # restante dos parâmetros após o vídeo ($1) shift PARAMS=$@ echo "==========================================================================" echo "mplayer \"$ARQUIVO\" -subfont-text-scale $TAMANHO_LEGENDA -font \ $FONT_LEGENDA -vf expand=:$ALTURA_TOTAL::2 -subcp $CODEPAGE_LEGENDA $PARAMS" echo "==========================================================================" mplayer "$ARQUIVO" -subfont-text-scale $TAMANHO_LEGENDA -font $FONT_LEGENDA -vf \ expand=:$ALTURA_TOTAL::2 -subcp $CODEPAGE_LEGENDA $PARAMS |
Não achei necessário (preguiça) incluir informações sobre o funcionamento do script, já que os comentários são claros e o código em si está auto-explicativo.
Informações sobre as opções informadas ao mplayer podem ser obtidas dando uma olhada na man page do mesmo.
Mas se não entendeu alguma coisa, ou tiver alguma sugestão, crítica, etc, etc é só postar um comentário.
