Скрипт для создания крутящейся картинки в дополнение к просмотрщику SovGVD

Ссылка на скрипт просмотровщика: rcopen.com/blogs/79585/19018

Вот набросал батник для Windows чтобы делать такую длинную картинку. Этот батник делает разбитие на кадры через ffmpeg и склейку через imagemagick, попутно вычисляя высоту готовой картинки, и формирует правильное имя файла для скрпипта.

Батник должен запускаться из каталога, в который скопированы FFMPEG (в подкаталог ffmpeg, а в нем уже должен быть bin, и в нем ffmpeg.exe) и IMAGEMAGICK (в подкаталог imagemagick, а в нем уже convert.exe). Запуск батника без параметров дает подсказку.

Перед запуском удалите все картинки в выходном каталоге!

Параметры:

  1. input_file_name - входной видео-файл;
  2. output_folder - каталог, куда будет класться длинная картинка и промежуточные кадры;
  3. start_time - время начала вырезанного куска в формате MM:SS;
  4. stop_time - время конца вырезанного куска в формате MM:SS;
  5. output_frames - количество кадров в длинной картинке;
  6. output_width - ширина одного кадра в длинной картинке;
  7. [ffmpeg_options] - необязательные параметры FFMPEG (например, для вырезание участка изображения (crop)).

Пример:

split.cmd C:\Capture\gopr7489.mp4 C:\VideoOut 1:38 1:55 36 640 -vf “crop=iw-200:ih-200:100:200”

Скрипт (split.cmd):

@rem Run without parameters for help!

@set CMD_NAME=%~nx0%
@set DIR=%~dp0%
@set FFMPEG=%DIR%ffmpeg
@set IMAGEMAGICK=%DIR%imagemagick

@if [%6] EQU [] goto Usage
@set inputfile=%1
@set outputdir=%2
@set tStart=%3
@set tStop=%4
@set resultFrames=%5
@set width=%6

@SHIFT
@SHIFT
@SHIFT
@SHIFT
@SHIFT
@SHIFT
@set OPTIONS=
@:loop1
@if [%1] == [] goto end_loop1
@set OPTIONS=%OPTIONS% %1
@SHIFT
@goto loop1

@:end_loop1

@echo OPTIONS=%OPTIONS%

rem goto :Convert

@setlocal ENABLEDELAYEDEXPANSION

@for /F "tokens=1* delims=:" %%a in ("!tStart!") do @set /a tStartSec=%%a*60+%%b
@echo Start=!tStartSec!

@for /F "tokens=1* delims=:" %%a in ("!tStop!") do @set /a tStopSec=%%a*60+%%b
@echo Stop=!tStopSec!

@set /a tLen=tStopSec-tStartSec
@echo Length=!tLen!

@set /a resultFPS=(1000*resultFrames+(tLen/2))/tLen
@set resultFPS=000%resultFPS%
@echo resultFPS*1000=%resultFPS%
@set resultFPS=%resultFPS:~0,-3%.%resultFPS:~-3%
@echo resultFPS=%resultFPS%

@setlocal DISABLEDELAYEDEXPANSION

@%FFMPEG%\bin\ffmpeg.exe -i %inputfile% -r %resultFPS% -ss %tStartSec%  -to %tStopSec% %OPTIONS% -f image2 %outputdir%\i%%04d.jpeg

@:Convert
@echo Set current path: %outputdir%
@pushd %outputdir%
@set fileSet=
@setlocal ENABLEDELAYEDEXPANSION
@for %%i in (*.jpeg) do @set fileSet=!fileSet! %%i
@set fileSet=%fileSet:~1%
@echo %fileSet% | %IMAGEMAGICK%\convert @- -sharpen 0x1.0 -filter Lanczos -distort resize 640x +append out.jpg

@for /f "tokens=*" %%a in ('@%IMAGEMAGICK%\identify -format "%%[fx:h]" out.jpg') do @set height=%%a

@echo Height=%height%
@set output_name=out_%resultFrames%_%width%_%height%.jpg
@ren out.jpg %output_name%

@popd

@echo -------------------------------------------------------------
@echo Result image: %outputdir%\%output_name%

@goto Quit

@:Usage
@echo ----------------------------------------------------------------------
@echo This script makes a scrollable picture from video for SovGVD's script.
@echo       Made by Andrey Prikupets, 2014. Many thanks to SovGVD!
@echo    See more: 
@echo ----------------------------------------------------------------------
@echo Usage:
@echo          %CMD_NAME% input_file_name output_folder start_time stop_time output_frames output_width [ffmpeg_options]
@echo Note:
@echo          start_time and stop_time have format: MM:SS
@echo Example:
@echo          %CMD_NAME% C:\Capture\gopr7489.mp4 C:\VideoOut 1:38 1:55 36 640 -vf "crop=iw-200:ih-200:100:200"
@echo Utilities:
@echo          ffmpeg should be copied to: %FFMPEG%
@echo          imagemagic should be copied to: %IMAGEMAGICK%

:Quit
  • 1096
Comments
SovGVD

Раз пошла такая пьянка, то вот тут sovgvd.info/portfolio/rotate/upload.php можно загружать свои картинки (ограничение 5мб), после успешной загрузки появится ссылка на просмотр, которой можно поделиться с кем нибудь =)

Prikupets

Так рождается прорывный медиасервис! 😒

Ух ты, работает закачка!

sovgvd.info/portfolio/rotate/index.php?p=140395716…

SovGVD

Я вот думаю надо редактор небольшой намутить, чтобы для каждой фотки выставлять некий центр объекта и чтобы всё это добро автоматически выравнивалось к центру и кадрировалось.