BLOG main image
분류 전체보기 (77)
프로젝트 (8)
IT소문 (9)
영화가주는인생 (5)
OpenAPI (9)
DBMS (5)
JAVA (16)
IPhone/Object-C (9)
안드로이드 (0)
WEB etc (8)
Server (1)
Michael Kors Handbags on Sale
Michael Kors Handbags on Sale
Nike Roshe Run
Nike Roshe Run
michael kors handbags outlet
michael kors handbags outlet
outlet de zapatillas nike
outlet de zapatillas nike
Cheap beats by dre uk
Cheap beats by dre uk
2,359,926 Visitors up to today!
Today 2 hit, Yesterday 150 hit
daisy rss
tistory
2011.09.11 12:11
java를 사용해서 실시간으로 업로드되는 영상을 ffmpeg를 사용해서 변화시키는 부분입니다.
ffmpeg는 로컬로 돌아가는 프로그램이라서 java에서 
해당 프로그램을 실행을 시켜야 합니다.

윈도우라면 exe파일을 실행을 시켜야 한다는 것인데
java에서는 ProcessBuilder 라는 놈이 사용되고 있습니다.

순서는  A폴더에  파일이 들어왔는지 실시간으로 체크하고 
ffmpeg로 인코딩하고 완료가되면 B폴더로 옮기게 됩니다.

public String convert() {


String ffmpegPath = "ffmpeg 파일이 있는 경로";    예) /work/ffmpeg
String fOriginal = "/work/upload.mp4";  //실시간으로 업로드되는 파일
String fResult = "/work/upload.flv";      // 인코딩하고 저장 할 파일위치

String[] cmdLine = new String[]{ffmpegPath,

                                               "-i",                           // 변환시킬 파일위치

                                               fOriginal,      

                                               "-ar",

                                               "44100",                

                                               "-ab",

                                               "32",                      

                                               "-s",

                                               "500x300",     //화면 사이즈

                                               "-b",

                                               "768k",          //비트레이트

                                               "-r",

                                               "24",           //영상 프레임

                                               "-y",

                                               "-f",

                                               "flv",            // flv파일 형태로 출력

                                               fResult};  // 저장하는 위치입니다.
 

// 프로세스 속성을 관리하는 ProcessBuilder 생성.
ProcessBuilder pb = new ProcessBuilder(cmdLine);
pb.redirectErrorStream(true);
Process p = null;
 try
        // 프로세스 작업을 실행
        
p = pb.start();
} catch (Exception e) {         
     e.printStackTrace();

     p.destroy();
     return null;
}

exhaustInputStream(p.getInputStream());   // 자식 프로세스에서 발생되는 inputstrem를 소비시켜야합니다.


 
 try {

        // p의 자식 프로세스의 작업이 완료될 동안 p를 대기시킴
        p.waitFor();

 } catch (InterruptedException e) {

         p.destroy();

 }


// 정상 종료가 되지 않았을 경우

 if (p.exitValue() != 0) {

       System.out.println("변환 중 에러 발생");

       return null;

 }

   // 변환을 하는 중 에러가 발생하여 파일의 크기가 0일 경우

  if (fResult.length() == 0) {

        System.out.println("변환된 파일의 사이즈가 0임");

         return null;

  }

  p.destroy();

}

private
void exhaustInputStream(final InputStream is) {

    // InputStream.read() 에서 블럭상태에 빠지기 때문에 따로 쓰레드를 구현하여 스트림을 소비한다
         try {

                BufferedReader br = new BufferedReader(new InputStreamReader(is));

                String cmd = null;

                while((cmd = br.readLine()) != null) { // 읽어들일 라인이 없을때까지 계속 반복

                   //System.out.println(cmd);

                }

                br.close();

             } catch(IOException e) {

                e.printStackTrace();

             }

   }

public static void main(String[] args) 
{

 File f = new File("실시간으로 올라오는 파일위치");

if(f.exists()){
     convert();




단일 프로세스보다는 스레드로 돌리면 더 좋겟죠?
인코딩을 하게되면 cpu를 많이 잡아 먹습니다. ffmpeg가 아니더라도 막 올라가더군요..
 
이제 이 파일을 window 에서는 service로 linux에서는 crontab에 들록되어
계속해서 돌려주면 되겠습니다.



 


 
 
이전 댓글 더보기
Michael Kors | 2012.12.18 11:15 신고 | PERMALINK | EDIT/DEL | REPLY
Your articles always have insights, very good,this is so ought to be an embarrassment to white liberals who are die. Thanks for sharing informative post. beautiful !!!
toms womens movember | 2012.12.19 09:41 신고 | PERMALINK | EDIT/DEL | REPLY
Une journaliste du Monde, http://www.discounttomssshoes.com/ purple toms, qui tente de se rendre en Tunisie depuis une semaine, http://www.discounttomssshoes.com/ toms code, n'a pas été autorisée par les autorités tunisiennes à entrer dans le pays, http://www.discounttomssshoes.com/ sale online toms, annonce le quotidien dans son édition datée de vendredi, http://www.discounttomssshoes.com/ toms ash maudie.
Related articles:


http://www.playyeah.com/viewthread.php?tid=589256&extra= http://www.playyeah.com/viewthread.php?tid=589256&extra=

http://redness.bbspace.org/viewthread.php?tid=16355&extra=page=1&frombbs=1 http://redness.bbspace.org/viewthread.php?tid=16355&extra=page=1&frombbs=1

http://hgtest2.hg13.huihost.com/thread-1049783-1-1.html http://hgtest2.hg13.huihost.com/thread-1049783-1-1.html
Miu Miu Boots | 2012.12.19 11:51 신고 | PERMALINK | EDIT/DEL | REPLY
코드자동완성 무료호스팅 블랙캣 Color Graphing Calculator enables the user to assign colors to various graphing objects like dotted lines, curves, bars, grid line rewtryreyuy
Jimmy Choo | 2012.12.24 11:15 신고 | PERMALINK | EDIT/DEL | REPLY
수준의 작업이 가능하면서도 무척 배우기 쉽다. 또한 "문서"라는 작업 대상에 적합한 각종 API들이 제공되기 때문에 훨씬 더 쉽게 dfsadeeqrtrt
Jimmy Choo | 2012.12.24 11:15 신고 | PERMALINK | EDIT/DEL | REPLY
수준의 작업이 가능하면서도 무척 배우기 쉽다. 또한 "문서"라는 작업 대상에 적합한 각종 API들이 제공되기 때문에 훨씬 더 쉽게 dfsadeeqrtrt
business telephone lines | 2013.01.03 18:49 신고 | PERMALINK | EDIT/DEL | REPLY
It’s a great site to see. That will help for improvisation of me. Will definitely marked as Bookmark.
moncler online | 2013.01.05 16:56 신고 | PERMALINK | EDIT/DEL | REPLY
Le ministre de l'Intérieur Brice Hortefeux, http://www.moncleroutletespain.com/ moncler outlet, condamné en juin 2010 pour avoir tenu des propos jugés "outrageants" envers les personnes d'origine arabe, http://www.moncleroutletespain.com/ http://www.moncleroutletespain.com/, sera rejugé le 9 juin, http://www.moncleroutletespain.com/ moncler chaquetas, a décidé mercredi la cour d'appel de Paris, http://www.moncleroutletespain.com/ moncler online.Related articles:


http://essay119.tistory.com/1482 http://essay119.tistory.com/1482

http://hiddenchampion.tistory.com/741 http://hiddenchampion.tistory.com/741
coach online outlet | 2013.03.01 14:59 신고 | PERMALINK | EDIT/DEL | REPLY
http://www.coachoutletvipstores.com/ coach online outlet
http://www.coachoutletonlinevipstore.com/ coach outlet online
discount oakley sunglasses | 2013.03.18 14:14 신고 | PERMALINK | EDIT/DEL | REPLY
Great and nice post thank you.
Shearrofeborn | 2013.07.30 20:57 신고 | PERMALINK | EDIT/DEL | REPLY

The forex industry remaining the biggest industry in the planet is also probably the most beneficial one as well. Practically anybody may become a trader and make massive money on this line, delivered these are decided good enough, and consider ample initiatives to receive by themselves nicely acquainted using the finer nuances with the trading course of action. Just as during the circumstance with other streams of life, it will not be a misnomer to state how the online has also substantially adjusted the extremely encounter in the forex trading process. No longer do you need to journey prolonged distances to trade in forex. Because of the internet, you can now do that sitting down while in the confines of the dwelling. Forex forex on the web trading is often a subject which is flourishing currently and it isn't surprising thinking of the volume of lucrative prospects the field presents.It is often preferable you equip oneself with the many requisite expertise wi
| 2013.09.11 23:55 | PERMALINK | EDIT/DEL | REPLY
비밀댓글입니다
http://lvneverfullbagprice.com | 2014.01.10 10:06 신고 | PERMALINK | EDIT/DEL | REPLY
thank you for share!
Emomynurn | 2014.10.23 05:44 | PERMALINK | EDIT/DEL | REPLY
이용약관위배로 관리자 삭제된 댓글입니다.
Emomynurn | 2014.10.28 21:31 | PERMALINK | EDIT/DEL | REPLY
이용약관위배로 관리자 삭제된 댓글입니다.
Nivalasn | 2014.10.30 11:58 | PERMALINK | EDIT/DEL | REPLY
이용약관위배로 관리자 삭제된 댓글입니다.
Emomynurn | 2014.10.31 06:48 | PERMALINK | EDIT/DEL | REPLY
이용약관위배로 관리자 삭제된 댓글입니다.
Emomynurn | 2014.11.09 06:11 | PERMALINK | EDIT/DEL | REPLY
이용약관위배로 관리자 삭제된 댓글입니다.
adaroamurgy | 2014.12.03 03:13 | PERMALINK | EDIT/DEL | REPLY
이용약관위배로 관리자 삭제된 댓글입니다.
dexuanesn | 2014.12.29 16:13 | PERMALINK | EDIT/DEL | REPLY
이용약관위배로 관리자 삭제된 댓글입니다.
laurasmithejue | 2015.01.15 09:39 | PERMALINK | EDIT/DEL | REPLY
이용약관위배로 관리자 삭제된 댓글입니다.
Name
Password
Homepage
Secret

티스토리 툴바