لديّ بعض مقاطع فيديو التدريب على الإنترانت التي تم إجراؤها عبر السنين بمجموعة من التنسيقات (AVI و WMV و MOV و RealPlayer) وأرغب في تقديم شيء يشبه وظيفة المعاينة - ربما صورة GIF مصغّرة متحركة تحتوي على شاشات تمثيلية قليلة ، أو ربما صورة مصغرة. ورقة يمكنني إظهار المستخدم مع صورة كل بضع ثوان من الفيديو. هل هناك أداة صور سهلة يمكنني استخدامها والتي يمكن أن تخلق مثل هذه الأشياء؟
سيكون النظام الأساسي للعارضين رائعًا ، لكنه يعد مرة واحدة (حاليًا ، haha) ، لذلك سيكون نظام التشغيل Windows أو Mac أو Linux جيدًا. شكر.
لقد اعتقدت أنه ينبغي القيام بذلك بسهولة في python وبحث Google عن "صورة مصغرة لفيديو python" في هذا الموقع:
http://notbrainsurgery.livejournal.com/29773.html
يمكنك تجربة الرمز البريدي المقدم هناك ...
لا يمكن أن تفوت على الكأس المقدسة لأنظمة الفيديو ، FFMPEG. إنه يعمل فقط حول كل ما قد تحتاج إليه في الفيديو عبر الإنترنت - يمكنك أخذ تنسيقات متعددة وتحويلها إلى صورة مصغرة أخرى ، وما إلى ذلك. هناك تباين صناعي تم تعديله بشكل كبير في FFMPEG وهو ما يسمح لـ YouTube بالعمل بالطريقة التي يعمل بها.
وإليك سطر الأوامر السريع توت للصور المصغرة: http://blog.prashanthellina.com/2008/03/29/creating-video-thumbnails-using-ffmpeg/
هناك العديد من tuts الأخرى هناك لجميع الميزات الأخرى.
لقد أجبت بالفعل عن كيفية القيام بذلك على 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. بخلاف ذلك ، إنها حزمة كاملة ما لم تختر إضافة معلومات خطأ أفضل أو منع المخرجات.
أعتقد Flowplayer (إنها موثقة جيدًا ومع العديد من الأمثلة) أو أن هناك شيئًا مشابهًا هو حل أفضل باعتباره مقتطفًا ربما تحتاج إلى تحريره أو صيانته.
بمجرد تكوين FlowPlayer بشكل صحيح ، يمكن أن يخدم الإبهام دون تحميل الفيديو الكامل. يعد تكوين هذا أمرًا صعبًا بعض الشيء ، ولكن بمجرد العمل ، يكون لديك حل قوي متعدد الأشكال. (وبنقرة على الإبهام تشغيل الفيديو ؛-))
إذا اخترت flowplayer ، يجب عليك أيضًا إلقاء نظرة على video4all (يستخدم html5 مع flowplayer كإرجاع) و flowplayer-plugins .