ffmpeg 관련이구요...
upload 폴더에 3gp, mp4등 파일이 올라오면 ffmpeg h264 mp4로 인코딩해서 (인코딩 옵션은 다 정리해두었습니다)
vod 폴더로 옮기고 upload에서 작업한 파일은 삭제하는건데요
단일 1개파일을 처리하는 쉘 스크립트는 쉽게 만들었습니다. 그런데 upload폴더에 복수의 개수가 있을경우 error가 발생하네요 ㅠ
아래처럼 하니 1개파일만 upload폴더에 올라왔을경우 잘 처리합니다
그런데 2개이상이..문제입니다 ㅠ 거의 1개이겠지만 재수없으면 2개중복될 수도 있는데 ㅠㅠ.. 혹시 도움주시면 사례하겠습니다..ㅠㅠ;;
질문의 요지는 아래 소스를 복수의 파일이 upload폴더에 들어왓을경우 에러없이 순차적으로 vod폴더에 인코딩해서 넣는것입니다. ㅠ
#!/bin/sh
ori_DIR=$(find /home/upload/ -name '*.3gp')
ex_DIR=/home/vod/
base=$(basename $ori_DIR .3gp)
ffmpeg -i $ori_DIR -r 24 -s 640x360 -aspect 16:9 -b 1000k -ab 128k -ar 22050 -acodec libmp3lame $ex_DIR/$base.mp4
rm -rf $ori_DIR
echo $ori_DIR
echo $base
find¿¡´Ù°¡ ¿ÍÀϵåÄ«µå *¾²½ÃÁö¸¶½Ã°í
/home/upload
Æú´õ
lsÇؼ grepÀ¸·Î mp4ÇÏ°í 3gpÆÄÀϵé
¸®½ºÆ®·Î »Ì¾Æ¼
¼øÂ÷ÀûÀ¸·Î ÀÎÄÚµù󸮸¦..ÇÏ´Â ¹æ¹ý...
¾î¶³±î¿ä?
½ºÅ©¸³Æ®¾È¿¡¼µµ ·çÇÁ¸¦ µ¹¸±¼ö ÀÖ½À´Ï´Ù.
http://www.cyberciti.biz/faq/bash-for-loop/
ÈùÆ®¸¦ µé¾îµµ ¸Ó¸®°¡ ¾ÆÇÁ³×¿ä¤Ì¤Ì
½©¿¡´ëÇؼ ¹«ÁöÇÏ´Ùº¸´Ï¤Ì¤Ì¤¾
·çÇÁ µ¹¸®¸é µÉ °Í °°Àºµ¥¿ä.
#!/bin/sh
ori_DIR=$(find ./ -name '*.3gp')
ex_DIR=/home/vod/
for i in $ori_DIR
do
base=$(basename $i .3gp)
ffmpeg -i $ori_DIR -r 24 -s 640x360 -aspect 16:9 -b 1000k -ab 128k -ar 22
rm -rf $i
echo $i
echo $base
done
´õ ±ò²ûÇÑ ¹æ¹ýµµ ¸¹ÀÌ ÀÖ°ÚÁö¸¸ º¯°æÀ» ÃÖ¼ÒÈÇؼ ...
¸ÕÀú ÇØ´ç Æú´õ¸¦ Àаí, ¾²°í, »èÁ¦ ÇÏ´Â ÇÁ·Î¼¼½º¸¦ ƯÁ¤ ½Ã°£º°·Î crontab À» ÀÌ¿ëÇÏ¿© ÁøÇàÇÏ½Ã¸é µÉ °Í °°½À´Ï´Ù
µð·ºÅ丮 ¸ñ·Ï Çϳª¾¿ Àбâ ÂüÁ¶ : https://kldp.org/node/114823
-------------------------------------
ÀÌ ºÎºÐ¿¡¼ ÆÄÀÏÀ» ¼øÂ÷ÀûÀ¸·Î Çϳª¾¿ Àд shell À» ¸¸µå½Ã¸é µÉ °Í °°½À´Ï´Ù ( ÆÄÀÏ ¸ñ·Ï È®Àνà ÂüÁ¶ ¹Ù¶ø´Ï´Ù)
-------------------------------------
#!/bin/sh
for FILE in `ls $1`
do
let I=I+1
echo "$I) $FILE"
done
echo -n "Which File ? "
read FILE_NUM
FILE_NAME=`ls $1 | sed -n "$FILE_NUM"p`
echo $FILE_NAME
------------------------------------------------------------
ÇØ´ç Æú´õ³ª ÆÄÀÏÀ» ÀÏÁ¤½Ã°£ ÈÄ »èÁ¦ÇÏ´Â ÇÁ·Î±×·¥ : http://sunwalk.tistory.com/8
À§ÀÇ ¸µÅ©¸¦ ÂüÁ¶ÇÏ¿© ÇØ´ç ½Ã°£ÀÇ ÆÄÀÏÀ̳ª Æú´õ¸¦ »èÁ¦ÇÏ½Ã¸é µÉ °Í °°½À´Ï´Ù
½Ã°£º° ½ÇÇà ( crontab )À¸·Î Æú´õÀÇ ÇØ´ç½Ã°£ ÆÄÀÏÀ» Çϳª¾¿ (for) ÀÎÄÚµù ÈÄ º¹»çÇÏ°í ÇØ´ç Æú´õÀÇ Æ¯Á¤½Ã°£ÀÇ ÆÄÀÏÀ» »èÁ¦ÇÏ´Â ¹æ½ÄÀÌ ¾î¶³±îÇÕ´Ï´Ù
Æí¾ÈÇÑ ÈÞÀϵǼ¼¿ä ~~
#ori_DIR=$(find /home/upload/ -name '*.3gp')
ex_DIR=/home/vod/
base=$(basename $ori_DIR .3gp)
find /home/upload -name '*.3gp' > /tmp/3gp.list
while read FILE
do
ffmpeg -i $FILE -r 24 -s 640x360 -aspect 16:9 -b 1000k -ab 128k -ar 22050 -acodec libmp3lame $ex_DIR/$base.mp4
rm -rf $FILE
echo /tmp/3gp.list
echo $base
done < /tmp/3gp.list
-----------------------------------------------------------------
Àú ¿ª½Ã Å×½ºÆ® Çغ¸Áö´Â ¾Ê¾Ò½À´Ï´Ù¸¸,
Á¦ÀÏ °£´ÜÇÑ while ¹®Àº »ç¿ëÇß½À´Ï´Ù.
±×¸®°í ÆÄÀÏÀ» ¸¸µé°Å³ª º¯¼ö ¼±¾ðÀ» À§ÇØ find ¸¦ ¾²´Â °ÍÀº »ç½Ç ÁÁÀº ½À°üÀº ¾Æ´Õ´Ï´Ù.
linux ÀÇ °æ¿ì¿¡´Â file index ±¸Á¶°¡ ÀߵǾî ÀÖ¾î¼ disk i/o ¸¦ ¸¹ÀÌ ¾È ÀÏÀ¸Å°´Â ÆíÀÔ´Ï´Ù¸¸,
ÀüÅëÀûÀÎ unix ȯ°æ¿¡¼´Â »ó´çÇÑ Disk I/o °¡ ¹ß»ýÇÕ´Ï´Ù. µû¶ó¼ ls /home/upload/*.3gp (ÇÏÀ§´Â ãÀ» ¼ö ¾øÁö¸¸,..) ·Î 󸮰¡
°¡´ÉÇϵµ·Ï ÇÏ´Â ÆíÀÌ ÁÁ½À´Ï´Ù. ¹°·Ð ¹Ýº¹¹® ½ÇÇà½Ã µð·ºÅ丮 󸮰¡ ¹®Á¦ÀÏ ¼ö ÀÕÀ¸³ª, ÇØ´ç°æ·Î·Î ¸ÕÀú ¿òÁ÷Àδٴø°¡
¸ðµÎ ¼± Àý´ë°æ·Î·Î ó¸® ÇÑ´Ù´ø°¡ Çؼ µÇµµ·Ï find ¹®À» ¾²Áö ¾Êµµ·Ï ÇÏ´Â °ÍÀÌ ÁÁ°Ú½À´Ï´Ù.
¸î¸î°÷Àº ÀǵµÀûÀ¸·Î find ¸í·É¾î¸¦ »ç¿ëÇÏÁö ¸øÇϵµ·Ï ¸·¾ÆµÐ°÷µµ ÀÖ½À´Ï´Ù.