반응형
동영상을 변환 시켜서 저장하 려고 한다.
시나리오.
1. 웹에서 파일선택후
2. form으로 원하는 값을 입력
3. 버튼을 누르면
선택된 파일 + form 에서 받은 입력값이 ajax 와 post 로 변수에 값 전달
4. 받은 값으로 exec 함수를 사용. ffmpeg 구문을 넣고 그 안에 변수값을 전달하여서 원하는 파일로 변경.
4.php 코드
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>변환 코드</title>
</head>
<body>
<script src="https://code.jquery.com/jquery-latest.js"></script>
<script>
function file_frm_submit(frm) {
var fileCheck = frm.upload_file.value;
if(!fileCheck) {
alert("업로드할 파일을 선택하세요.");
return false;
}
var formData = new FormData(frm);
formData.append("message", "ajax로 파일 전송하기");
$.ajax({
url : 'ajax_file_upload.php',
type : 'POST',
dataType : 'html',
enctype : 'multipart/form-data',
processData : false,
contentType : false,
data : formData,
async : false,
success : function(response) {
console.log(response);
if(response == "failed") {
alert("파일 업로드에 문제가 발생하였습니다.");
return false;
} else {
alert("파일 업로드가 완료되었습니다.");
return true;
}
}
});
}
</script>
<div style = "display: flex; width: 100%; height: 60em; align-items: center; justify-content: center;">
<form id="file_frm" style=" width: 50%; height: 50%; text-align: center; ">
<input type="file" name="upload_file" id="upload_file">
<br><br>
<INPUT TYPE="text" name="testa" id ="texta">
<button type="button" onClick="file_frm_submit(this.form)">ajax 업로드</button>
</form>
</div>
</body>
</html>
ajax_file_upload.php 코드
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"/>
</head>
<body>
<?php
$testa = $_POST["testa"];
ini_set("display_errors", "1");
//저장 경로
$uploaddir = '/var/www/html/uploadfile/file/';
$uploadfile = $uploaddir . basename($_FILES['upload_file']['name']);
echo '<pre>';
if (move_uploaded_file($_FILES['upload_file']['tmp_name'], $uploadfile)) {
// command 조절
shell_exec('/usr/bin/ffmpeg -i '.$uploadfile.' -an /var/www/html/uploadfile/file/'.$_POST['testa'].'.mp4 2>&1;');
//원본 삭제
unlink($uploadfile);
} else {
echo "failed";
}
print_r($_FILES);
print "</pre>";
echo $uploadfile;
?>
</body>
</html>
이러면 원하는 파일을 가져와서
ffmpeg로 커맨드를 만들어서 파일을 마음대로 변형할수있다. (시간, 썸내일 등)
결과값.
원하는 시간과 이름값 확장자 변환까지 할수있다.
2022.04.22 - [이과/ffmpeg] - FFmpeg 명령어 사용하기.
반응형
'이과 > FFMPEG' 카테고리의 다른 글
[FFMPEG] ffprobe에 나오는 동영상 정보들 php 변수로 만들기. (6) | 2022.04.29 |
---|---|
[FFMPEG] ffmpeg로 파일안에있는 동영상 전체 인코딩 (2) | 2022.04.28 |
[FFMPEG] exec 명령어가 안먹는다 (1) | 2022.04.26 |
[FFMPEG] php 파일 업로드 용량 조절 (4) | 2022.04.25 |
[FFMPEG] FFmpeg 명령어 사용하기. (1) | 2022.04.22 |
댓글