it-swarm.asia

الصور المصغرة لمقاطع الفيديو بتنسيقات متعددة؟

لديّ بعض مقاطع فيديو التدريب على الإنترانت التي تم إجراؤها عبر السنين بمجموعة من التنسيقات (AVI و WMV و MOV و RealPlayer) وأرغب في تقديم شيء يشبه وظيفة المعاينة - ربما صورة GIF مصغّرة متحركة تحتوي على شاشات تمثيلية قليلة ، أو ربما صورة مصغرة. ورقة يمكنني إظهار المستخدم مع صورة كل بضع ثوان من الفيديو. هل هناك أداة صور سهلة يمكنني استخدامها والتي يمكن أن تخلق مثل هذه الأشياء؟

سيكون النظام الأساسي للعارضين رائعًا ، لكنه يعد مرة واحدة (حاليًا ، haha) ، لذلك سيكون نظام التشغيل Windows أو Mac أو Linux جيدًا. شكر.

4
artlung

لقد اعتقدت أنه ينبغي القيام بذلك بسهولة في python وبحث Google عن "صورة مصغرة لفيديو python" في هذا الموقع:

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

يمكنك تجربة الرمز البريدي المقدم هناك ...

3
mbrochh

لا يمكن أن تفوت على الكأس المقدسة لأنظمة الفيديو ، FFMPEG. إنه يعمل فقط حول كل ما قد تحتاج إليه في الفيديو عبر الإنترنت - يمكنك أخذ تنسيقات متعددة وتحويلها إلى صورة مصغرة أخرى ، وما إلى ذلك. هناك تباين صناعي تم تعديله بشكل كبير في FFMPEG وهو ما يسمح لـ YouTube بالعمل بالطريقة التي يعمل بها.

وإليك سطر الأوامر السريع توت للصور المصغرة: http://blog.prashanthellina.com/2008/03/29/creating-video-thumbnails-using-ffmpeg/

هناك العديد من tuts الأخرى هناك لجميع الميزات الأخرى.

2
bpeterson76

لقد أجبت بالفعل عن كيفية القيام بذلك على Stack Overflow هنا باستخدام ffmpeg و PHP.

نأسف للإجابة التي تتمحور حول الشفرة ولكن القيام بذلك في عملية دفعية يتم بسهولة عن طريق كتابة بعض التعليمات البرمجية الفعلية.

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

لا تحصل على منصة أكثر من ذلك بكثير.

فيما يلي تفصيل للأعلام:

  • إشارة -setoffset هو الوقت الذي يتم فيه التقاط اللقطة في الفيديو
  • -vodec هو نوع الإخراج (التغيير إلى بابوا نيو غينيا بابوا نيو غينيا ، الخ ...)
  • -fframes مضبوط على واحد لأنك تستخرج إطارًا واحدًا فقط (IE صورة)
  • قد تحتاج أيضًا إلى إضافة -deinterlace

هذا عن ذلك. لا تحصل أسهل بكثير من ذلك. إذا كنت تقوم بعمل لقطات شاشة متعددة لفيلم ما عليك سوى تغيير علامة -setoffset. بخلاف ذلك ، إنها حزمة كاملة ما لم تختر إضافة معلومات خطأ أفضل أو منع المخرجات.

1
Evan Plaice

أعتقد Flowplayer (إنها موثقة جيدًا ومع العديد من الأمثلة) أو أن هناك شيئًا مشابهًا هو حل أفضل باعتباره مقتطفًا ربما تحتاج إلى تحريره أو صيانته.

بمجرد تكوين FlowPlayer بشكل صحيح ، يمكن أن يخدم الإبهام دون تحميل الفيديو الكامل. يعد تكوين هذا أمرًا صعبًا بعض الشيء ، ولكن بمجرد العمل ، يكون لديك حل قوي متعدد الأشكال. (وبنقرة على الإبهام تشغيل الفيديو ؛-))

إذا اخترت flowplayer ، يجب عليك أيضًا إلقاء نظرة على video4all (يستخدم html5 مع flowplayer كإرجاع) و flowplayer-plugins .

0
fwaechter