My HD Homerun for PLEX는 .TS 파일(전송 스트림)을 저장합니다.
720으로 범위를 좁히기 위해 다음 스크립트를 사용합니다.
#!/bin/bash
for INF in *.ts
do ffmpeg -i "$INF" -vf scale=-1:720 -c:v libx264 -crf 23 -preset ultrafast -c:a copy "${INF%.*}.mp4"
done
이것은 훌륭하게 작동하며 폴더의 .sh 스크립트에 있는 모든 .TS를 mp4 컨테이너에 저장하도록 변환합니다. 그런 다음 다음 스크립트를 실행합니다.
#!/usr/local/bin/bash
for INF in *.mp4
do
echo "Extracting subtitles"
ccextractor "$INF" -o "/tmp/$(basename "$INF" .ts).srt"
echo "Moving subtitles"
mv -v /tmp/*.srt .
done
내 목표는 이 두 bash 루프를 하나의 스크립트로 결합하는 것입니다. 이상적으로는 다음을 수행하는 스크립트를 원합니다. a) 현재 폴더와 모든 하위 폴더에서 .ts 파일을 검색합니다. b) .ts를 .mp4로 리믹스 c) .ts에서 비공개 자막을 추출하여 .srt로 저장 d) 모든 .ts 파일 삭제
"for INF in *.ts" 뒤에 /를 추가하면 하위 디렉터리도 포함되는지 확실하지 않습니다. 이 두 스크립트를 하나의 파일로 결합하는 방법이나 파일 삭제 코드를 어디에 넣을지 잘 모르겠습니다.
어떤 아이디어라도 크게 감사하겠습니다. -션
답변1
이건 어때:
for x in *.ts
do
y=$(basename "$x" .ts)
ffmpeg -i "$x" "$y".mp4
ffmpeg -i "$x" "$y".srt
done