it-swarm-tr.com

Birden çok formattaki videolar için küçük resimler?

Yıllar boyunca birkaç formatta (AVI, WMV, MOV, RealPlayer) hazırlanmış intranet eğitim videolarım var ve önizleme işlevi gibi bir şey sunmak istiyorum - belki birkaç temsili ekranlı küçük resim veya GIF resmi olabilir sayfa Videoya birkaç saniyede bir görüntüyü kullanıcıya gösterebilirim. Böyle şeyler yaratabilecek, kullanabileceğim kolay bir resim aracı var mı?

Platform agnostiği harika olurdu, ancak bir defalık (şimdilik, haha), bu yüzden Windows, Mac veya Linux iyi olacaktı. Teşekkürler.

4
artlung

Bunun kolayca python içinde yapılması gerektiğini düşündüm ve bu sitede "python video küçük resmi" için bir Google araması yapıldı:

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

Orada verilen kaynak kodu deneyebilirsiniz ...

3
mbrochh

FFMPEG video sistemlerinin kutsal kâsesini kaçıramazsınız. Çevrimiçi videoda ihtiyaç duyabileceğiniz her şeyi yapar - birden fazla formatta ve başka bir fotoğrafa, küçük resme, vb. Dönüştürün. FFMPEG'in büyük ölçüde değiştirilmiş bir endüstriyel varyasyonu, YouTube'un bu şekilde çalışmasına izin veren şeydir.

İşte küçük resimler için tutulan hızlı bir komut satırı: http://blog.prashanthellina.com/2008/03/29/creating-video-thumbnails-using-ffmpeg/

Diğer tüm özellikleri için dışarıda bir sürü tutuş var.

2
bpeterson76

Ffmpeg ve PHP kullanarak Stack Overflow here üzerinde bunun nasıl yapıldığını çoktan cevapladım.

Kod merkezli yanıt için özür dilerim, ancak bunu toplu işlemlerde yapmak, bazı gerçek kodları yazarak en kolay şekilde yapılır.

/**
* 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";
        }
    }
}

Bundan daha fazla çapraz platform elde edemez.

İşte bayrakların dökümü:

  • -itsoffset flag, videonun anlık görüntüsünün alındığı zamandır.
  • -vcodec çıktı türüdür (png için png, vb ...)
  • -vframes bire ayarlanmıştır çünkü sadece bir kare çıkarırsınız (IE bir görüntü)
  • ayrıca -deinterlace eklemeniz gerekebilir

Bu konuda. Bundan daha kolay olmaz. Bir film için birden çok ekran görüntüsü yapıyorsanız, sadece -itsoffset bayrağını değiştirin. Bunun dışında, daha iyi hata bilgisi eklemeyi ya da çıktıları bastırmayı seçmediyseniz, komple bir pakettir.

1
Evan Plaice

Bence Flowplayer (Çok iyi belgelenmiş ve birçok örnekle belgelenmiştir) veya benzer bir şey, düzenlemek veya sürdürmek zorunda olduğunuz bir snippet olarak daha iyi bir çözümdür.

FlowPlayer doğru yapılandırıldıktan sonra, tam videoyu yüklemeden başparmaklara hizmet edebilir. Bunu yapılandırmak biraz zor, ama işe yaradığında, sağlam, çoklu form çözümünüz var. (Baş parmağına bir tıklama ile video oynatılır ;-))

Flowplayer'ı seçerseniz, video4all (geri dönüş olarak flowplayer ile html5 kullanır) ve flowplayer-plugins 'e de bakmalısınız.

0
fwaechter