it-swarm-vi.com

Hình thu nhỏ cho video ở nhiều định dạng?

Tôi có một số video đào tạo mạng nội bộ được thực hiện trong nhiều năm qua với nhiều định dạng (AVI, WMV, MOV, RealPlayer) và muốn cung cấp một cái gì đó như chức năng xem trước - có thể là hình thu nhỏ GIF động với một vài màn hình đại diện hoặc có thể là hình thu nhỏ tờ Tôi có thể hiển thị cho người dùng bằng một hình ảnh cứ sau vài giây video. Có một công cụ hình ảnh dễ dàng nào tôi có thể sử dụng có thể tạo ra những thứ như vậy không?

Nền tảng bất khả tri sẽ là tuyệt vời, nhưng nó là một thứ (hiện tại, haha), vì vậy Windows, Mac hoặc Linux sẽ ổn. Cảm ơn.

4
artlung

Tôi chỉ nghĩ rằng điều này nên được thực hiện dễ dàng trong python và một tìm kiếm Google cho "hình thu nhỏ video python" trong trang web này:

http://notbrainsurgery.livejournal.com/29773.html

Bạn có thể thử mã nguồn được cung cấp ở đó ...

3
mbrochh

Không thể bỏ lỡ chén thánh của hệ thống video, FFMPEG. Nó thực hiện mọi thứ bạn có thể cần trong video trực tuyến - có nhiều định dạng và chuyển đổi sang dạng khác, hình thu nhỏ, v.v ... Một biến thể công nghiệp được sửa đổi nhiều của FFMPEG là thứ cho phép YouTube hoạt động theo cách của nó.

Đây là một dòng lệnh nhanh cho hình thu nhỏ: http://blog.prashanthellina.com/2008/03/29/creating-video-thumbnails-USE-ffmpeg/

Có nhiều tuts khác cho tất cả các tính năng khác của nó.

2
bpeterson76

Tôi đã trả lời cách thực hiện việc này trên Stack Overflow tại đây bằng cách sử dụng ffmpeg và PHP.

Xin lỗi về câu trả lời tập trung vào mã nhưng thực hiện việc này trong một quy trình hàng loạt được thực hiện dễ dàng nhất bằng cách viết một số mã thực tế.

/**
* ExtractThumb, extracts a thumbnail from a video
*
* This function loads a video and extracts an image from a frame 4 
* seconds into the clip
* @param $in string the input path to the video being processed
* @param $out string the path where the output image is saved
*/
function ExtractThumb($in, $out)
{
    $thumb_stdout;
    $errors;
    $retval = 0;

    // Delete the file if it already exists
    if (file_exists($out)) { unlink($out); }

    // Use ffmpeg to generate a thumbnail from the movie
    $cmd = "ffmpeg -itsoffset -4 -i $in -vcodec mjpeg -vframes 1 -an -f rawvideo -s 320x240 $out 2>&1";
    exec($cmd, $thumb_stdout, $retval);

    // Queue up the error for processing
    if ($retval != 0) { $errors[] = "FFMPEG thumbnail generation failed"; }

    if (!empty($thumb_stdout))
    {
        foreach ($thumb_stdout as $line)
        {
            echo $line . "\n";
        }
    }

    if (!empty($errors))
    {
        foreach ($errors as $error)
        {
            echo $error . "\n";
        }
    }
}

Không có được nhiều nền tảng hơn thế.

Đây là một sự cố của các cờ:

  • -itsoffset flag là thời gian trong video mà ảnh chụp nhanh được thực hiện
  • -vcodec là loại đầu ra (thay đổi thành png cho png, v.v ...)
  • -vframes được đặt thành một vì bạn chỉ trích xuất một khung hình (IE một hình ảnh)
  • bạn cũng có thể cần thêm -deinterlace

Đó là về nó. Không dễ dàng hơn thế. Nếu bạn đang thực hiện nhiều ảnh chụp màn hình cho một bộ phim, chỉ cần thay đổi cờ -itsoffset. Ngoài ra, đó là một gói hoàn chỉnh trừ khi bạn chọn thêm thông tin lỗi tốt hơn hoặc triệt tiêu đầu ra.

1
Evan Plaice

Tôi nghĩ Flowplayer (Tài liệu rất hay và có nhiều ví dụ) hoặc một cái gì đó tương tự là một giải pháp tốt hơn như một đoạn trích mà bạn có thể phải chỉnh sửa hoặc duy trì.

Khi FlowPlayer được cấu hình đúng, nó có thể phục vụ ngón tay cái mà không cần tải video đầy đủ. Cấu hình này hơi khó một chút, nhưng một khi nó hoạt động, bạn có giải pháp đa dạng, vững chắc. .

Nếu bạn chọn Flowplayer, bạn cũng nên xem video4all (sử dụng html5 với Flowplayer làm dự phòng) và Flowplayer-plugins .

0
fwaechter