Lendo metadados MKV específicos de avconv

0

Eu quero extrair uma parte específica de metadados de um MKV e usá-lo como o nome do arquivo de um arquivo convertido.

Exemplo, se eu executar avconv -i MyFile.mkv

Eu recebo a seguinte saída

avconv version 9.18-6:9.18-0ubuntu0.14.04.1, Copyright (c) 2000-2014 the Libav developers
  built on Mar 16 2015 13:19:10 with gcc 4.8 (Ubuntu 4.8.2-19ubuntu1)
Input #0, matroska,webm, from 'MyFile.mkv':
  Duration: 00:06:49.05, start: 0.000000, bitrate: 9062 kb/s
    Chapter #0.0: start 0.000000, end 409.057000
    Metadata:
      title           : UK Songs
    Stream #0.0: Video: h264 (High), yuv420p, 1280x720 [PAR 1:1 DAR 16:9], 29.97 fps, 29.97 tbr, 1k tbn, 59.94 tbc (default)
    Metadata:
      title           : x264   1280x720   Bitrate=7843 kb/s
...

Eu quero Metadata -> title - neste caso, "UK Songs". Não consigo ver informações sobre como ler esses metadados específicos e usá-los como uma variável na documentação da libav

No momento, estou convertendo o arquivo usando

avconv -i MyFile.mkv -acodec copy MyFile.ac3"

Isso me dá um arquivo chamado "MyFile.ac3", enquanto eu quero um arquivo chamado "UK Songs.ac3"

    
por Terence Eden 14.10.2015 / 15:40

2 respostas

1

Isso apenas mostrará os metadados do título:

echo "$(avconv -i MyFile.mkv | grep '^\s*title\s*:' | sed 's/[[:space:]]*title[[:space:]]*:[[:space:]]//')"

E isso fará a conversão para o nome do arquivo que você deseja:

avconv -i MyFile.mkv -acodec copy "$(avconv -i MyFile.mkv | grep '^\s*title\s*:' | sed 's/[[:space:]]*title[[:space:]]*:[[:space:]]//').ac3"

Pelo menos aqui no meu OS X usando Bash, não tenho 100% de certeza se o sed difere significativamente no seu Ubuntu.

    
por 14.10.2015 / 16:36
1

Você pode obter o título com ffprobe sozinho (não é necessário grep , sed , awk , etc). Estou altamente duvidoso que avprobe possa.

$ ffprobe -v error -show_entries format_tags=title -of default=nw=1:nk=1 in.mkv
  UK Songs

Você pode adaptar este exemplo ao seu script / shell / comando favorito.

    
por 16.10.2015 / 07:59