Bash Script com ffmpeg

0

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

    
por NixonShaun 07.02.2018 / 04:03

1 resposta

1

Que tal isso:

for x in *.ts
do
  y=$(basename "$x" .ts)
  ffmpeg -i "$x" "$y".mp4
  ffmpeg -i "$x" "$y".srt
done
    
por 07.02.2018 / 04:19