2012-01-29 40 views
6

Tôi có trang này (rất đơn giản để hiển thị những gì tôi cần) để tải lên tệp flv - tôi đã đọc một số bài đăng về ffmpeg-php nhưng cách cài đặt trên máy chủ nếu đó là giải pháp và cách sử dụng nó?cần tạo hình thu nhỏ để tải lên video (mã đơn giản)

<?php 
if(isset($_REQUEST['upload'])){ 
$tmp_name = $_FILES['video']['tmp_name']; 
$name = $_FILES['video']['name']; 
$path = "videos/"; 
move_uploaded_file($tmp_name,$path.$name); 
} 
else{ 
?> 
<form action="" method="post" enctype="multipart/form-data"> 
<input name="video" type="file" /> <input name="upload" type="submit" value="upload" /> 
</form> 
<?php 
} 
?> 

và cần tạo hình thu nhỏ cho video được tải lên trong thư mục khác có cùng tên bất kỳ trợ giúp nào? cảm ơn trước

Trả lời

8

Cài đặt ffmpeg phải đơn giản. Trên bất kỳ bản phân phối dựa trên Ubuntu/Debian nào, hãy sử dụng apt-get:

apt-get install ffmpeg 

Sau đó, bạn có thể sử dụng nó để tạo hình thu nhỏ.

Trước tiên, bạn cần để có được một vị trí thời gian ngẫu nhiên từ tập tin của bạn:

$video = $path . escapeshellcmd($_FILES['video']['name']); 
$cmd = "ffmpeg -i $video 2>&1"; 
$second = 1; 
if (preg_match('/Duration: ((\d+):(\d+):(\d+))/s', `$cmd`, $time)) { 
    $total = ($time[2] * 3600) + ($time[3] * 60) + $time[4]; 
    $second = rand(1, ($total - 1)); 
} 

Bây giờ biến $second của bạn được thiết lập. Lấy thumbnail thực tế:

$image = 'thumbnails/random_name.jpg'; 
$cmd = "ffmpeg -i $video -deinterlace -an -ss $second -t 00:00:01 -r 1 -y -vcodec mjpeg -f mjpeg $image 2>&1"; 
$do = `$cmd`; 

Nó sẽ tự động lưu hình thu nhỏ để thumbnails/random_name.jpg (bạn có thể muốn thay đổi điều đó tên dựa trên video tải lên)

Nếu bạn muốn thay đổi kích thước hình thu nhỏ, sử dụng tham số -s (-s 300x300)

Kiểm tra ffmpeg documentation để biết danh sách đầy đủ các thông số bạn có thể sử dụng.

+0

nhờ để trả lời nhưng vẫn không hiểu - làm thế nào để tải lên ffmpeg đến máy chủ và cài đặt nó sử dụng mã này i không biết bất cứ điều gì về Linux và tôi mới để lưu trữ tôi có cpanel 11.30.5 (xây dựng 6) –

+0

ok tôi hỏi hỗ trợ lưu trữ và họ đã trở lại với tôi rằng ffmpeg không được hỗ trợ bất kỳ giải pháp? –

+0

Nếu công ty lưu trữ của bạn không có cài đặt ffmpeg, thì tiếc là giải pháp này sẽ không hoạt động cho bạn. Bạn có thể chuyển sang một máy chủ có hỗ trợ ffmpeg không? Thực hiện tìm kiếm trên Google trên 'shared hosting ffmpeg'. Nên có hàng trăm người xung quanh. – Tony

2

Hoặc bạn có thể làm điều đó trong trình duyệt với thẻ video HTML5 và canvas, xem: https://gist.github.com/adamjimenez/5917897

+1

Phải là câu trả lời. Ffmpeg kinda hút cho nhiệm vụ nhỏ này. Đã lãng phí thời gian trên đó. –

+0

đó là những gì tôi sử dụng. sau khi tải lên xong, khách hàng tạo hình thu nhỏ và cung cấp dữ liệu base64 cho máy chủ. tuyệt vời anwser –

Các vấn đề liên quan