폴더 자체를 변경하는 작업을 실행하는 방법

폴더 자체를 변경하는 작업을 실행하는 방법

비디오 파일의 밀착 시트(썸네일)를 생성하는 프로그램인 VCS(Video Contact Sheet)를 실행하고 싶습니다.

시나리오는 다음과 같습니다.온도. 그 안에는 1991년, 1992년, 1993년 등 연도 이름을 딴 폴더가 많이 있습니다.연도 폴더비디오 제목이 포함된 다른 하위 폴더가 있습니다. 예는 다음과 같습니다.

Temp --> This is a folder
|
|
 1995  --> This is a folder
 |  
 |   
  Vacation in Italy  --> This is folder
  |
  |
   Video 1.mp4
   Video 2.mp4
   Video 3.mp4
   Video 4.mp4
   Video 5.mp4

내 목표는 다음과 같습니다

  1. 라는 이름의 폴더를 만듭니다.화면영상과 같은 수준.
  2. Temp에서 vcs 명령을 시작하고 폴더 안에 내 모든 비디오의 썸네일을 만듭니다.화면. 모든 영상은MP4. 모든 썸네일은JPG.

비디오 썸네일을 만드는 명령은 다음과 같습니다.

vcs /home/user/Temp/1991/"Vacation in Italy"/"Video 1.mp4" -U0 -n 15 -c 3 -H 200 -a 300/200 -j

이것을 자동화하는 방법을 알고 있습니까?

답변1

mp4스크립트는 가지고 있는 파일 세트를 반복합니다. vcs비디오 파일을 안정적으로 찾을 수 있도록 각 파일에 대한 절대 경로가 필요합니다 .

for mp4 in ~/Temp/*/*/*.mp4
do
    dir="$(dirname "$mp4")"
    screen="$dir/Screen"

    if test ! -d "$screen"
    then
        echo "Processing videos in $dir" >&2
        mkdir -p "$screen"
    fi
    ( cd "$screen" && vcs "$mp4" -U0 -n 15 -c 3 -H 200 -a 300/200 -j )
done

답변2

이것은 작동합니다:

#!/bin/bash
for fd in `cat "\`ls\`"`; do
   cd ~/Temp/$fd
   for sbfd in `cat "\`ls\`"`; do
      mkdir ~/Temp/$fd/$sbfd/Screens;
      cd ~/Temp/$fd/$sbfd/Screens;
      vcs /home/user/Temp/$fd/$sbfd/*.mp4 -U0 -n 15 -c 3 -H 200 -a 300/200 -j;
      done;
done;

작동하지 않는 경우 어떤 오류 메시지가 표시되는지 알려주시면 패치해 드리겠습니다. 내 컴퓨터에서 테스트할 수는 없지만 이론적으로는 괜찮을 것이라고 생각합니다.

그런데 이것을 쉘 스크립트로 저장해야 하며 Temp가 홈 디렉토리에 있는 경우에만 작동합니다.

관련 정보