2014-12-19 2 views
1

У меня есть URL-адрес видеофайлов, и я хочу сгенерировать миниатюру каждого из этого источника видеоролика. Я использую Django.Создать видео thumbnail из источника видео в python

Мое приложение делает это: -

1. Crawl the some webpage 
2. Extract all the video link from it. 
3. If there are thumbnails, get those thumbnails. 
4. if not thumbnails: 
    #here I need to generate video thumbnails from the 
    #links I extracted in 2nd step. 

Есть ли способ сделать это без загрузки полного видео и создания эскизов.

Если я загружаю каждое видео, тогда будет много потерь пропускной способности и потребуется много времени.

Благодаря

ответ

4

Вы должны попробовать FFmpeg. sudo apt-get install ffmpeg

Я не тестировал это решение, но мне было просто интересно, поэтому я немного огляделся.

ffmpeg -ss 00:03:00 -i Underworld.Awakening.avi -frames:v 1 out1.jpg

This example will produce one image frame (out1.jpg) somewhere around the third minute from the beginning of the movie. The input will be parsed using keyframes, which is very fast. The drawback is that it will also finish the seeking at some keyframe, not necessarily located at specified time (00:03:00), so the seeking will not be as accurate as expected.

Источник: Fastest way to extract a specific frame from a video (PHP/ffmpeg/anything)

Другой ответ утверждает, что можно использовать его через HTTP на удаленных видео, так что может стоит попробовать.

ffmpeg -i "http://subdomain.cloudfront.net/video.mp4" -ss 00:00:10 -vframes 1 -f image2  
"image%03d.jpg" 

Источник: How to read remote video on Amazon S3 using ffmpeg

Надеется, что это помогает. Сообщите нам о результатах.

+0

Как я могу назвать его с помощью подпроцесса, я имею в виду, что подпроцесс очень простой, но я не могу сообщить об ошибке командной строки.SyntaxError: недопустимый синтаксис – vaibhav1312

+0

Вы пытались запустить его в терминале? Сначала я начну с этого, а затем реализую его в django после того, как все будет работать так, как ожидалось. – martincpt

+0

Однако, если вы хотите запустить команду с подпроцессом: ** subprocess.call ('COMMAND LINE HERE', shell = True) ** Обратите внимание: официальная документация на Python содержит предупреждение об использовании аргумента shell = True. «Вызов системной оболочки с оболочкой = True может представлять угрозу безопасности, если в сочетании с с ненадежным вводом" – martincpt

Смежные вопросы