Que tal isso:
for x in *.ts
do
y=$(basename "$x" .ts)
ffmpeg -i "$x" "$y".mp4
ffmpeg -i "$x" "$y".srt
done
meu Homerun HD para PLEX salva arquivos .TS (fluxo de transporte).
para diminuir isso para 720 eu uso o seguinte script:
#!/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
isso funciona bem e converte todos os scripts .TS na pasta .sh é armazenado em um contêiner mp4. Eu então corro o seguinte script:
#!/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
Meu objetivo é combinar esses dois loops bash em um script. Idealmente eu gostaria, um script que irá: a) digitalizar a pasta atual e todas as subpastas procurando por arquivos .ts. b) remuxar o .ts para .mp4 c) retire as legendas ocultas de .ts e armazene como .srt d) remova todos os arquivos .ts
Não tenho certeza se adicionei um / after 'para INF em * .ts' incluiria subdiretórios. e não sabe como juntar esses dois scripts em um arquivo ou onde colocar o código de remover arquivo (s)
qualquer ideia seria muito apreciada. -shaun