ffmpeg 동영상 이미지 캡쳐 및 스트리밍서버로 데이타 전송하기 정보
ffmpeg 동영상 이미지 캡쳐 및 스트리밍서버로 데이타 전송하기본문
ffmpeg를 이용해서 동영상이미지 캡쳐및 스트리밍서버로 데이타 전송하기입니다.
** 기본적 플로우 **
동영상파일 -->> 임시디렉토리에 업로드 -->> 동영상 변환 및 영상캡쳐
-->> 스트리밍서버접속 및 동영상 이전 -->> 임시디렉토리파일 삭제
-->> 전송할 디렉토리파일정보를 웹서버에 저장.
----------------------전송플로우입니다.----------------------
<?php
    // Handle the file and return the file identifier to the SWF
 if (isset($_FILES["resume_file"]) && isset($_FILES["resume_file"]["name"])) {
  //echo $_FILES["resume_file"]["name"];
  
/*************************************************************************/
 /**********************디렉토리에 업로드할경우*******************************/
 //$upload_path = str_replace("\\", "/", realpath(dirname($_SERVER['SCRIPT_FILENAME']))) . "/uploads/";
 $upload_path = "uploads/";
$ext = strtolower(substr(strrchr($_FILES["resume_file"]["name"],"."), 1)); //확장자
//세팅할 파일명
 $seting_name  = "";
 $seting_name .= time();
 $seting_name .= time();
 $seting_name .= ".".$ext;
 
 
 //세팅할 주소
 $seting_path  = $upload_path;
 $seting_path .= $seting_name;
 
/****************************
 // Handle the upload
 if (!move_uploaded_file($_FILES["resume_file"]["tmp_name"], $seting_path)) {
  header("HTTP/1.0 500 Internal Server Error");
 }
 ************************8/
 
 // Delete the file.  We don't want it.
 //@unlink($upload_path . $_FILES["Filedata"]["name"]);
 
 /***************************디렉토리 업로드 끝**********************************/
/***********************************동영상변환************************/
  //$in_file  = "2.wmv";
  $in_file  = $_FILES["resume_file"]["tmp_name"];
  $out_name  = time();
  $out_name .= time();
  $rr_path     = "/home/seumi/www/upload2/uploads/";
  $o_i_path    =  $rr_path;
  $o_i_path   .=  $out_name;
exec("/home/seumi/www/ffmpeg/ffmpeg/ffmpeg -i $in_file -an -ss 00:00:14 -an -r 2 -vframes 1 -y $o_i_path%d.jpg ", $output, $error);
//에러가 없다면
   if(!$error){
    $creat_img   = $out_name;
    $creat_img  .= 1;
    $creat_img  .= ".jpg";
  }
  else{
  header("HTTP/1.0 500 Internal Server Error");
  }
/***********************************동영상변환************************/
//접속할 서버
 $ftp_server = "접속할아이피주소";
 $ftp_user_name = "계정이름";
 $ftp_user_pass = "계정패스워드";
 $server_port = 21; //포트
$r_path = $in_file;
$ext = strtolower(substr(strrchr($_FILES["resume_file"]["name"],"."), 1)); //확장자
//세팅할 파일명
 $seting_name  = "";
 $seting_name .= time();
 $seting_name .= time();
 $seting_name .= ".".$ext;
$fp              = fopen($r_path, 'r');
     if (!$fp)
    {
  header("HTTP/1.0 500 Internal Server Error");
    }
    
    
//원격서버에 연결한다. 
if(!($fc = ftp_connect($ftp_server, $server_port))) 
    die("$server_host : $server_post - connect failed"); 
//원격서버에 로그인한다. 
if(!ftp_login($fc, $ftp_user_name, $ftp_user_pass)) 
    die("$server_id - login failed"); 
//디렉토리로 이동
$server_dir  = "/동영상업로드할경로/";
$f_chdir     = ftp_chdir($fc, $server_dir); 
   /*
   if (!$f_chdir)
    {
       alert("접속서버 디렉토리변경 실패");
    }
 */
//파일을 업로드 한다. 
$ftp_result = ftp_put($fc, $seting_name , $r_path, FTP_BINARY); 
 // Delete the file.  We don't want it.
 @unlink($upload_path . $seting_name);
 @unlink($upload_path . $ch_file);
/*************************************************************************/
   
  echo $seting_name;
  echo "|";
  echo $creat_img;
  echo "|";
  echo $file_size;
  echo "|";
  echo $file_type;
  
 } else {
  echo ' ';
 }
?>
-------------------------------------
해당결과물정보를 그누보드 게시판 여분필드에 저장하세요.
2
댓글 2개


