Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 비밀번호정규식
- PHP 구글 OTP 인증
- php 개행문자
- html pdf 변환
- usb efi 시스템 파티션 삭제
- php 특정 문자열 취환
- bootstrap modal
- wkhtmltopdf 실행 오류
- apache mod rewrite
- 아파치 웹 서버의 정보 숨기기
- svn 충돌 해결 resolved
- mysqldump: Got error: 1045
- 비밀번호검증정규식
- PHP 구글 OTP 연동
- 부트스트랩4 세로 중앙 정렬
- (using password: YES)" when trying to connect
- group_concat 구분자
- 세로 중앙 정렬
- 파라미터 & 오류
- bootstrap
- 우분투 mysql 비밀번호 없이 로그인 될때
- JQuery checkbox 컨트롤
- magic bytes
- javascript
- svn 충돌 해결 resolve
- mysql root 비밀번호 변경
- PHP 정규식 예제
- 구글 OTP 인증
- 자바스크립트비밀번호검증
- libxrender1
Archives
- Today
- Total
투덜이 개발자
PHP를 사용하여 동영상 인코딩을 수행하는 일반적인 방법 본문
반응형
우분투 서버에서 PHP를 사용하여 동영상 인코딩을 수행하는 일반적인 방법은 FFmpeg라는 도구를 사용하는 것입니다. FFmpeg는 강력한 멀티미디어 처리 라이브러리로, 동영상 및 오디오 인코딩, 디코딩, 변환, 스트리밍 등을 지원합니다. PHP에서 FFmpeg를 호출하여 동영상 파일을 인코딩할 수 있습니다. 다음은 우분투 서버에서 PHP를 사용해 동영상을 인코딩하는 방법입니다.
1. FFmpeg 설치
우선, 서버에 FFmpeg를 설치해야 합니다. 터미널에서 다음 명령을 실행하여 FFmpeg를 설치하세요.
sudo apt update
sudo apt install ffmpeg
2. PHP에서 FFmpeg 실행
PHP에서 exec() 함수를 사용해 FFmpeg 명령어를 실행하여 동영상을 인코딩할 수 있습니다. 예를 들어, MP4 동영상을 H.264 코덱으로 인코딩하려면 다음과 같이 작성할 수 있습니다.
<?php
// 원본 동영상 파일과 출력 파일 경로 설정
$inputFile = '/path/to/input/video.mp4';
$outputFile = '/path/to/output/video_converted.mp4';
// FFmpeg 명령어 작성
$command = "ffmpeg -i " . escapeshellarg($inputFile) . " -vcodec libx264 -crf 23 -preset fast " . escapeshellarg($outputFile);
// 명령어 실행
exec($command, $output, $returnVar);
// 결과 확인
if ($returnVar === 0) {
echo "동영상 인코딩 성공!";
} else {
echo "동영상 인코딩 실패. 오류 코드: " . $returnVar;
}
?>
3. FFmpeg 명령어 설명
- -i: 입력 파일 경로를 지정합니다.
- -vcodec libx264: H.264 코덱을 사용하여 동영상을 인코딩합니다.
- -crf: 품질 설정(0~51, 0이 최고 품질, 51이 최저 품질, 일반적으로 23을 사용합니다).
- -preset: 인코딩 속도와 품질 간의 균형을 설정합니다(초고속, 빠름, 중간, 느림 등).
4. PHP에서 FFmpeg 오류 및 진행 상황 확인
FFmpeg는 표준 출력을 통해 진행 상황을 표시합니다. PHP의 exec() 함수 대신 proc_open()을 사용하면 실시간으로 진행 상황을 확인할 수 있습니다.
참고용으로만 확인하세요.. 2024-11-12 테스트 결과 진행상황이 표시되지 않음.. 이유는 잘 모르겠습니다.
<?php
$inputFile = '/path/to/input/video.mp4';
$outputFile = '/path/to/output/video_converted.mp4';
$command = "ffmpeg -i " . escapeshellarg($inputFile) . " -vcodec libx264 -crf 23 -preset fast " . escapeshellarg($outputFile);
$process = proc_open($command, [
1 => ['pipe', 'w'],
2 => ['pipe', 'w']
], $pipes);
if (is_resource($process)) {
while ($line = fgets($pipes[1])) {
echo $line; // 진행 상황 출력
}
fclose($pipes[1]);
fclose($pipes[2]);
proc_close($process);
}
?>
5. 웹 서버 권한 설정
FFmpeg가 PHP에서 제대로 실행되기 위해서는 웹 서버 사용자가 FFmpeg와 파일에 접근할 권한이 있어야 합니다. chmod 및 chown 명령어로 권한을 설정할 수 있습니다.
chmod 777 /path/to/output
반응형
'Program Language > PHP' 카테고리의 다른 글
PHP 동영상 파일에서 썸네일 추출하는 방법 (0) | 2024.11.11 |
---|---|
PHP 동영상 파일 총 재생시간 확인 (0) | 2024.11.11 |
우분투 php7.4 설치하기 (0) | 2024.10.29 |
우분투 php 버전 변경 (0) | 2024.09.27 |
우분투 composer 설치 (1) | 2024.09.27 |