mPlayRecTv - assiste e grave a programação da TV com MPlayer
Publicado por Pedro Robson Leão 05/04/2005
[ Hits: 5.322 ]
Grave a programação da tv com o uso do cron/at e mplayer.
Passei por varias opções vcr, http://www.stack.nl/~brama/vcr/, mplayerTv, http://www.mplayertv.tk/. Mas foi no site http://www.anandtech.com/guides/viewfaq.aspx?i=154 que encontrei os parametros necessários para usar o mplayer para fazer minhas gravações.
Criei então um script para fazer isto e conto com a comunidade para aprimorar este script.
Mandem suas dicas, criticas e melhorias.
#!/usr/bin/bash #name : mPlayRecTv #born : 01-April-2005 (it is not lie) #author : Pedro Robson Leão (pedro.leao@ig.com.br) #description: A simple interface to play and rec tv with mplayer. #change log : #20050401 ** first version. #mencoder -tv driver=v4l:norm=palm:channel=3:chanlist=us-cable:width=320:height=240:input=0 -ovc lavc -lavcopts vcodec=mpeg4:vbitrate=900 -oac mp3lame -lameopts cbr:br=64 -o output.avi tv:// #mplayer -tv driver=v4l:norm=palm:channel=3:chanlist=us-cable:width=352:height=240:input=0 -vo sdl tv:// #-- default Parameters driver=${driver:-v4l}; norm=${norm:-palm}; channel=${channel:-3}; channelist=${channelist:-us-cable}; width=${width:-320}; height=${height:-240}; ovc=${ovc:-lavc -lavcopts}; vcodec=${vcodec:-mpeg4}; vbitrate=${vbitrate:-900}; oac=${oac:-mp3lame -lameopts}; cbr=${cbr:-br=64}; input=${input:-Television}; output=${output:-output.avi}; vo=${vo:-sdl}; log=${log:-/dev/null}; time=; play=1; myname=$0; #-- convert hour and minuts to seconds function convTime() { value=${1}; value=${value//:/}; min=$((value%100)); hour=$((value/100)) min=$((min*60)); hour=$((hour*3600)); sec=$((hour+min)); echo $sec; } #-- error message function errMsg() { echo "Use: ${myname} [options ...]"; echo; echo "Default options:"; echo "--driver=${driver}"; echo "--norm=${norm} [palm/paln/pal/ntsc]"; echo "--channel=${channel}"; echo "--channelist=${channelist}"; echo "--width=${width}"; echo "--height=${height}"; echo "--ovc=${ovc}"; echo "--vcodec=${vcodec}"; echo "--vbitrate=${vbitrate}"; echo "--oac=${oac}"; echo "--cbr=${cbr}"; echo "--input=${input} [Television/Composite1/S-Video]"; echo "--output=${output}"; echo "--vo=${vo}"; echo "--log=${log}"; echo; echo; case $1 in pid) echo "ERROR IN PLAY/REC : To debug errors to play/rec use --log option and see log to many informations.";; input) echo "INVALID INPUT : Use --input with [Television/Composite1/S-Video]";; mplayer|mencoder) echo "CAN'T FOUND PROGRAM ${1}"; esac } #-- Change input parameters to getopts format set -- ${*//--driver/-d}; set -- ${*//--norm/-n}; set -- ${*//--channel/-c}; set -- ${*//--channelist/-l}; set -- ${*//--width/-W}; set -- ${*//--heigth/-H}; set -- ${*//--ovc/-V}; set -- ${*//--vcodec/-C}; set -- ${*//--vbitrate/-b}; set -- ${*//--oac/-A}; set -- ${*//--cbr/-R}; set -- ${*//--input/-i}; set -- ${*//--output/-o}; set -- ${*//--vo/-O}; set -- ${*//--play/-p}; set -- ${*//--rec/-r}; set -- ${*//--log/-L}; set -- ${*//--time/-T}; set -- ${*//--help/-h}; #- get parameters while getopts d:n:c:l:W:H:V:C:b:A:R:i:o:O:prhL:T: value 2>/dev/null ; do case $value in d) driver="${OPTARG}";; n) norm="${OPTARG}";; c) channel="${OPTARG}";; l) channelist="${OPTARG}";; w) width="${OPTARG}";; H) heigth="${OPTARG}";; V) ovc="${OPTARG}";; C) vcodec="${OPTARG}";; b) vbitrate="${OPTARG}";; A) oac="${OPTARG}";; R) cbr="${OPTARG}";; i) input="${OPTARG}";; o) output="${OPTARG}";; O) vo="${OPTARG}";; L) log="${OPTARG}";; T) time="${OPTARG}";; p) play=1;; r) play=;; h) errMsg help; exit 0;; *) errMsg help; exit 0;; esac done #-- convert input parms case ${input} in Television) input=0;; Composite1) input=1;; S-Video) input=2;; *) errMsg input; exit 0;; esac gparms="driver=${driver}:norm=${norm}:channel=${channel}:chanlist=${channelist}:width=${width}:height=${height}:input=${input}"; if [ ! -z ${play} ] ; then command="mplayer -tv ${gparms} -vo ${vo} tv://"; msglog="${0} play channel ${channel} "; else command="mencoder -tv ${gparms} -ovc ${ovc} vcodec=${vcodec}:vbitrate=${vbitrate} -oac ${oac} cbr:${cbr} -o ${output} tv://"; msglog="${0} rec channel ${channel} "; fi #-- verify command if ! which $( echo $command | cut -d" " -f1 ) ; then errMsg $command; exit 1; fi #-- execute the mplayer our mencoder start=$(date); ${command} >${log} 2>&1 & cmdpid=${!}; #-- in error case no has pid [ -z "${cmdpid}" ] && errMsg pid && exit 0; #-- get time to reproduction time=$( convTime ${time} ); #-- if time reproduction, kill proccess after time [ ${time} -ge 0 ] && sleep ${time} && kill ${cmdpid}; end=$(date); #-- write log message logger 0 "${msglog} pid:${cmdpid} start:${start} end:${end}"; exit 1;
Atualizar repositório no Linux desabilitando a hibernação do sistema
Impedir duas ou mais conexões por usuário
Script Administração SquidFacil Ubuntu 11.10
Nenhum comentário foi encontrado.
Enviar mensagem ao usuário trabalhando com as opções do php.ini
Meu Fork do Plugin de Integração do CVS para o KDevelop
Compartilhando a tela do Computador no Celular via Deskreen
Como Configurar um Túnel SSH Reverso para Acessar Sua Máquina Local a Partir de uma Máquina Remota
Configuração para desligamento automatizado de Computadores em um Ambiente Comercial
Compartilhamento de Rede com samba em modo Público/Anônimo de forma simples, rápido e fácil
Cups: Mapear/listar todas as impressoras de outro Servidor CUPS de forma rápida e fácil
Criando uma VPC na AWS via CLI
Tem como instalar o gerenciador AMD Adrenalin no Ubuntu 24.04? (15)
Tenho dois Link's ( IP VÁLIDOS ), estou tentando fazer o failover... (0)
Pendrive não formata de jeito nenhum (4)