mPlayRecTv - assiste e grave a programação da TV com MPlayer
Publicado por Pedro Robson Leão 05/04/2005
[ Hits: 5.457 ]
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;
Backup com data no nome do arquivo
Gerar senhas aleatórias de qualquer tamanho
Envio de backps de bancos por ftp com notificação por email
Abilitando impressora no cups automatico
Nenhum coment�rio foi encontrado.
Servidor de Backup com Ubuntu Server 24.04 LTS, RAID e Duplicati (Dell PowerEdge T420)
Visualizar câmeras IP ONVIF no Linux sem necessidade de instalar aplicativos
Atualizar Debian Online de uma Versão para outra
Instalar driver Nvidia no Debian 13
Redimensionando, espelhando, convertendo e rotacionando imagens com script
Debian 13 Trixie para Iniciantes
Convertendo pacotes DEB que usam ZSTD (Padrão Novo) para XZ (Padrão Antigo)
Rust é o "C da nossa geração"? (3)
Gerenciador de arquivos é finalizado ao abrir pasta específica (2)