Создание автоматизированного конвертера ffmpeg - PullRequest
0 голосов
/ 27 января 2019

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

Код прекрасно работает в терминале, но требует, чтобы каждое имя файла вводилось вручную. Я пытаюсь автоматизировать процесс.

for f in "$@"
do

FILE= "$f"
OUT=${FILE/mp4/png}
OUT_WIDTH=10800
OUT_HEIGHT=3600

eval $(ffprobe -v error -of flat=s=_ -select_streams v:0 -show_entries stream=height,width "${FILE}")
IN_WIDTH=${streams_stream_0_width}
IN_HEIGHT=${streams_stream_0_height}

 eval $(ffprobe -v error -of flat=s=_ -count_frames -select_streams v:0 -show_entries stream=nb_read_frames "${FILE}")
IN_FRAMES=${streams_stream_0_nb_read_frames}

W_TILES=$(bc <<< "(sqrt($OUT_WIDTH*$IN_FRAMES*$IN_HEIGHT/($IN_WIDTH*$OUT_HEIGHT))+3)")
H_TILES=$(bc <<< "(sqrt($OUT_HEIGHT*$IN_FRAMES*$IN_WIDTH/($OUT_WIDTH*$IN_HEIGHT)))")

W_SHRUNK=$(bc <<< "$OUT_WIDTH/$W_TILES")
H_SHRUNK=$(bc <<< "$OUT_HEIGHT/$H_TILES")

ffmpeg -i "${FILE}" -vf "hflip,transpose=cclock,scale=${H_SHRUNK}:${W_SHRUNK},tile=${H_TILES}x${W_TILES},transpose=clock,hflip,scale=${OUT_WIDTH}x${OUT_HEIGHT}" -an -sn -vsync 0 "${OUT}"


done

Я ожидал, что код выдаст изображение каждого кадра фильма. Но вместо этого я получил массивное сообщение об ошибке.

The action “Run Shell Script” encountered an error: “-: line 5: /Users/jeffreymoser/21 A New Dawn.mp4: Permission denied
-: line 14: ffprobe: command not found
-: line 18: ffprobe: command not found
(standard_in) 1: parse error
(standard_in) 1: parse error
(standard_in) 1: parse error
(standard_in) 2: parse error
(standard_in) 2: parse error
-: line 29: ffmpeg: command not found
-: line 5: /Users/jeffreymoser/22 Battle Hymn.mp4: Permission denied
-: line 14: ffprobe: command not found
-: line 18: ffprobe: command not found
(standard_in) 1: parse error
(standard_in) 1: parse error
(standard_in) 1: parse error
(standard_in) 2: parse error
(standard_in) 2: parse error
-: line 29: ffmpeg: command not found
-: line 5: /Users/jeffreymoser/23 Reckless.mp4: Permission denied
-: line 14: ffprobe: command not found
-: line 18: ffprobe: command not found
(standard_in) 1: parse error
(standard_in) 1: parse error
(standard_in) 1: parse error
(standard_in) 2: parse error
(standard_in) 2: parse error
-: line 29: ffmpeg: command not found
-: line 5: /Users/jeffreymoser/24 Showdown.mp4: Permission denied
-: line 14: ffprobe: command not found
-: line 18: ffprobe: command not found
(standard_in) 1: parse error
(standard_in) 1: parse error
(standard_in) 1: parse error
(standard_in) 2: parse error
(standard_in) 2: parse error
-: line 29: ffmpeg: command not found
-: line 5: /Users/jeffreymoser/25 Wedding Bells.mp4: Permission denied
-: line 14: ffprobe: command not found
-: line 18: ffprobe: command not found
(standard_in) 1: parse error
(standard_in) 1: parse error
(standard_in) 1: parse error
(standard_in) 2: parse error
(standard_in) 2: parse error
-: line 29: ffmpeg: command not found
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...