mplayer 좀더 편하게 쓰기
글쓴이: alee / 작성시간: 월, 2005/12/19 - 4:06오후
제가 쓰고 있는 스크립트 입니다.
기능이 두 가지인데, 첫 번째 기능은 파일의 해상도에 따라서 적당히 위, 아래에 공백을 넣어서 자막이 화면의 아래에 나오도록 해 주는 기능입니다. 두 번째 기능은 만약 file1.avi 파일을 재생할 경우 같은 디렉토리 안에 file2.avi 파일이 들어 있으면 자동으로 연속으로 재생해 주는 기능입니다.
#! /bin/sh FILE=$1 RES=$(file "$FILE" | sed -e "s/.*, *\([0-9][0-9]* *x *[0-9][0-9]*\) *,.*/\1/") if [ "$RES" == "${RES#*:}" ]; then if [ 520 -gt ${RES#*x} -a $((${RES%x*}*3/4)) -gt ${RES#*x} ]; then OPT=$((${RES%x*}*3/4-${RES#*x})) test $OPT -gt $((${RES%x*}/5)) && OPT=$((${RES%x*}/5)) test ${RES%x*} -gt 693 && OPT=$((520-${RES#*x})) OPT="-osdlevel 3 -vop expand=0:-$OPT:0:$(($OPT*5/13))" elif [ ${RES#*x} -gt 520 ]; then OPT="-vo x11 -subfont-osd-scale $((6*1024/${RES%x*})) -subfont-text-scale $((5*1024/${RES%x*}))" fi fi while [ -f "$FILE" ]; do mplayer -fs -idx "$FILE" || exit FILENO=$(echo "$FILE" | sed -e "s/[^0-9]*$//" -e "s/^.*[^0-9]//") NEXTNO=$((10#$FILENO+1)) while [ "${#NEXTNO}" -lt "${#FILENO}" ]; do NEXTNO=0$NEXTNO; done FILE="${FILE%$FILENO*}$NEXTNO${FILE##*$FILENO}" done
제 비디오카드에서는 동영상 파일의 세로 해상도가 520픽셀을 넘으면 xv로는 재생이 안 되더군요. 그래서 520픽셀 보다 클 경우 x11로 재생하도록 하는 부분이 들어 있습니다.
Forums:
좋은 코드 감사드립니다..
정말 윈도우에서 KMP 연속되는 이름 가진 파일 이어서 재생하는거 편하게 쓰다가 mplayer 쓰면서 좀 아쉬웠거든요
전 두번째 기능만 떼서 써봤는데, 의도한대로 안되더라구요. 가령
파일01.avi
파일02.avi
이런식으로 숫자 앞에 0이 붙어있는 경우랑 0이 안붙은 파일인데도 세개 이상 재생이 안되서 고쳐봤습니다.
사실 아직도 shell script를 잘 몰라서 앞뒤 정황 봐가면서 고쳐봤어요. 그럭저럭 제가 원하는대로 되는데 문제는 장편 애니를 보다가 중간에 끌때가 힘드네요 Ctrl+C를 마구 눌러댔어요^^
Gentoo Rules!
지적하신 문제를 해결해 보려고 약간 고쳐 보았습니다.[code:1
지적하신 문제를 해결해 보려고 약간 고쳐 보았습니다.
이렇게 하니까 다음과 앞에 0이 붙어 있는 경우는 물론이고 아래와 같은 경우에도 연속 재생이 됩니다.
file1.avi
file2.avi
...
file9.avi
file10.avi
file11.avi
...
장편 애니 문제는 mplayer 실행 명령 뒤에 || exit 를 붙여 주니 해결되네요. 이렇게 해도 q나 Esc로 mplayer를 종료하는 경우에는 계속해서 연속 재생이 되지만, 창을 닫아서 종료하면 false 값이 리턴되면서 || 뒤의 exit가 실행되어 스크립트가 종료됩니다.
alee님 정말 고맙습니다^^덕분에 편하게 쓰게 되네요
alee님 정말 고맙습니다^^
덕분에 편하게 쓰게 되네요
Gentoo Rules!
자막을 표시하는 위치에 대해 제가 찾던 해결방법이군요.레댓9를 아직도
자막을 표시하는 위치에 대해 제가 찾던 해결방법이군요.
레댓9를 아직도 쓰는 관계로 file명령이 그렇게 발전했는줄 모르고 있었어요.
덕분에 file 명령도 소스업그레이드 하고, 한가지 일을 더 자동화 했네요.
:)
MS를 믿으세요? 그럼 구글은요?
새로 고쳐봤습니다.
위의 스크립트가 제 노트북에서는 잘 작동하지 않길래 고쳐볼까 하다가 포기하고 원본에서 조금씩 떼어와서 다시 만들어 봤습니다.
와이드 스크린 노트북은 ~/.mplayer/config에
를 추가해 주시면 잘 동작합니다(할 겁니다)
참고로 위 설정파일에
도 넣어주시면 금상첨화
아, 다음 파일은 > 또는 enter , 이전 파일은 <, 종료는 q입니
그냥 이렇게 해도 자동 재생이 되는군요.[code:1]mplaye
그냥 이렇게 해도 자동 재생이 되는군요.
[quote="alee"]그냥 이렇게 해도 자동 재생이 되는군요.[c
이 한 줄짜리 코드를 보니 눈물이 앞을 가리는 군요.
[quote="sephiron"][quote="alee"]그냥 이렇게 해
그런데 다시 보니 한자리 숫자만 지원이 될 것 같네요.
예를 들어 56 번을 클릭하면 59번 다음에 60번으로 넘어가는게 아니라 66번으로 넘어갑니다. 문제가 좀 있습니다. --;
제가
제가 셸스크립트를 전혀 할지 몰라서 그러는데
위에 스크립트 사용할려면 어떻게 하면 되는건가요?
가령~ 위에 스크립트 중에 하나 파일에 저장해서
$ chmod +x your-script-name
$ chmod 755 your-script-name
$ ./your-script-name
이렇게 해주면 되는건가요?
shell script tutorial 보면 일반적으로 스크립트 파일은 이렇게 실행 시켜주던데~
위에 파일들은 안되더군요. 명령문에 file 이름을 인수로 넣어줘야할거 같은데 ~
좀 설명좀 해주시겠어요?
파일에서 해상도를
파일에서 해상도를 알아내어 비율 맞춰주는 스크립트 입니다.
http://wiki.kldp.org/wiki.php/MPlayer
16:10 해상도라 16:9 로 맞춰서 자막이 너무 바닥에 붙지 않게 했습니다.
예 윗분의 궁금증은 그게 맞습니다.
./your-script filename 하면 스크립트내의 $1 이 filename 이 됩니다.
emerge money
http://wiki.kldp.org/wiki.php/GentooInstallSimple - 명령어도 몇개 안되요~
https://xenosi.de/
댓글 달기