Converte arquivos para MP4 em sub-diretórios

4

Eu tenho minha coleção de filmes e séries em um diretório, que obviamente tem muitos subdiretórios e vários formatos diferentes. Está sendo constantemente adicionado por todos nós aqui. O que eu gostaria de fazer é criar um script que possa ser executado ocasionalmente quando um ou todos nós tivermos adicionado novos itens que pesquisarão arquivos nesse diretório / sub-diretório e os converterão em um formato que o kodi / xbmc possa transmitir para o meu fiel xbox 360. Estou executando o Gnome 16.04, não tenho certeza se isso é relevante ou não.

Até agora eu encontrei o código para converter os arquivos reais;

for i in *mkv; do ffmpeg -i $i -vcodec copy -acodec copy "$i.mp4"; done

e os arquivos estão todos localizados em

/media/dave/Seagate Expansion Drive/Media

Então, esses são os problemas que me restam.

  • O mp4 é o melhor caminho a percorrer? Pesquisando isso não esclareceu para mim, há um milhão de opiniões diferentes! Até agora vai jogar alguns MP4, mas não todos.

  • Como adaptar essa pequena linha de código para procurar mais do que apenas mkv - existem mpeg, avi, wmv, mov, tudo o que você pode imaginar! Eu precisaria apenas repetir essa linha de código para cada tipo de arquivo diferente?

  • Como fazê-lo pesquisar nos subdiretórios

  • Como fazê-lo excluir o arquivo original somente se a conversão for bem-sucedida

  • Como posso definir o kodi / xbmc para carregar no arranque já minimizado?

Qualquer ajuda, sugestões ou sugestões para resolver isso seria muito apreciada :)

    
por Dave 17.07.2016 / 13:00

1 resposta

1

  

Como fazer com que ele pesquise nos subdiretórios

Use find .

  

Como adaptar essa pequena linha de código para pesquisar mais do que apenas   mkv

Use a opção -iregex com find .

  

Como fazê-lo excluir o arquivo original somente se a conversão for   bem sucedido

Você precisa de uma opção if .

Colocando tudo junto:

while IFS= read -r -d '' movie ; do
    echo "Found: $movie"

    convert_command="ffmpeg -i '$movie' -vcodec copy -acodec copy '$movie.mp4'"

    if bash -c "$convert_command" ; then
        echo "Converted to mp4"
        rm "$movie"
    else
        echo "Convertation failed"
    fi
done < <(find . -type f -iregex '.*\(mkv\|mpeg\|avi\|wmv\|mov\)' -print0)

Eu usei esta resposta para criar um loop baseado em find output.

Vantagens e desvantagens de mp4 e kodi / xbmc minimizar na inicialização são questões independentes, sugiro que você crie posts separados para cada um deles.

    
por teksisto 23.07.2016 / 17:04