나는 최근에 사용자가 비디오를 업로드 할 수있는 웹 사이트에서 작업하기 시작했으며, 나는 ffmpeg로 초보자이지만 내가 원하는 이러한 것들을 어떻게 수행하는지 검색하고 찾고있다. 그 중 대부분은 나를 위해 일하지 않습니다.FFmpeg와 PHP는 MP4 및 스냅 샷으로 비디오를 변환
모든 비디오 유형을 .mp4
으로 변환하고 가능한 한 품질을 좋게 유지하고 싶습니다. 현재 코드는 .mov
및 .mp4
개의 업로드에 대해서만 작동하지만 .avi
은 변환되지 않습니다 (해당 파일을 새로 만들지도 않음).
나는 또한 비디오에서 고화질 스크린 샷을 찍고 싶지만, 지금 얻고있는 스크린 샷은 정말로 저품질 인 것처럼 보이므로 그걸로 무엇이 있는지 모른다.
내가 지금 사용하고 코드는 이것이다 :
$ffmpeg = "/Users/USERNAME/ffmpeg/ffmpeg";
$src = "/Applications/MAMP/htdocs/lounge/videos/".$filename."_original.".$ext;
$img = "/Applications/MAMP/htdocs/lounge/videos/thumbnails/".$filename."_1.jpg";
$img2 = "/Applications/MAMP/htdocs/lounge/videos/thumbnails/".$filename."_2.jpg";
$img3 = "/Applications/MAMP/htdocs/lounge/videos/thumbnails/".$filename."_3.jpg";
$video = "/Applications/MAMP/htdocs/lounge/videos/".$filename.".mp4";
$src = preg_replace("/ /", "\ ", $src);
$img = preg_replace("/ /", "\ ", $img);
$imgOutput = shell_exec("$ffmpeg -ss 1 -i $src -s 960x540 -f image2 -vframes 1 $img");
$imgOutput2 = shell_exec("$ffmpeg -ss 15 -i $src -s 960x540 -f image2 -vframes 1 $img2");
$imgOutput3 = shell_exec("$ffmpeg -ss 30 -i $src -s 960x540 -f image2 -vframes 1 $img3");
$videoOuput = shell_exec("$ffmpeg -y -i $src 2>&1 -s vga $video");
가 어떻게 720p 및 1080p의 비디오 출력에 대해 갈 수
?
정말 좋은 화질의 스크린 샷을 원한다면 .jpg를 버리고 .png를 사용하십시오. – Havenard
1080p 비디오는'-s 1920x1080'이고 720p 비디오는'-s 1280x720'입니다 – Havenard
좋아, 글쎄, 720p 비디오를 사용했지만 여전히 원본보다 약간 픽셀 화되어 있습니다. –