Questão:
Conversão de lote gratuita de FLAC para Apple Lossless (ALAC)?
sorin
2011-04-07 11:43:55 UTC
view on stackexchange narkive permalink

Estou procurando uma ferramenta gratuita que me permita converter grandes quantidades de arquivos FLAC para ALAC (Apple Lossless Audio Codec) enquanto preserva as metainformações e, opcionalmente, adiciona novas informações de CDDB ou fontes semelhantes.

No momento, estou mais interessado em um utilitário do Windows, mas você pode recomendar os do OS X. Use respostas diferentes para ferramentas diferentes.

Oito respostas:
boehj
2011-04-08 07:01:25 UTC
view on stackexchange narkive permalink

Se você está satisfeito com o Terminal, pode tentar o seguinte loop de comando:

  for f in * .flac; do ffmpeg -i "$ f" -vf "crop = ((in_w / 2) * 2): ((in_h / 2) * 2)" -c: a alac "$ {f% .flac} .m4a"; done  

Isso simplesmente percorrerá todos os arquivos .flac no diretório atual e os converterá em .alac até que estejam todos prontos. Posso confirmar que isso funciona no Linux onde o ffmpeg está disponível gratuitamente nos repositórios. Para OSX, você pode instalar o ffmpeg via homebrew, e também há compilações estáticas para Windows, OSX e Linux listadas no site do ffmpeg.

Isso irá preservar os metadados, mas a forma como o M4A armazena as imagens de capa é fundamentalmente diferente da forma como o FLAC (e a maioria dos outros formatos de áudio) o faz. Infelizmente, o FFmpeg atualmente não consegue lidar com isso. Felizmente, você pode extrair a capa como uma imagem jpeg na mesma etapa da transcodificação do áudio e, em seguida, usar outra ferramenta de linha de comando (AtomicParsley) para mesclar a capa no M4A.

  ffmpeg -i input.flac -vf "crop = ((in_w / 2) * 2): ((in_h / 2) * 2)" -c: uma saída alac.m4a cover.jpgAtomicParsley output.m4a --artwork cover.jpg --overWrite  

Isso pode ser colocado em um loop for; os && s significam que o próximo comando só será executado se o comando anterior for bem-sucedido.

  for f em * .flac; do ffmpeg -i "$ f" -vf "crop = ((in_w / 2) * 2): ((in_h / 2) * 2)" -c: a alac "$ {f /% flac / m4a}" " $ {f /% flac / jpg} "&& \ AtomicParsley" $ {f /% flac / m4a} "--artwork" $ {f /% flac / jpg} "--overWrite && \ rm" $ {f /% flac / jpg} "; feito  
O sempre útil `ffmpeg`.
No Windows, faça: para% f em (* .flac) do ffmpeg.exe -i "% f" -acodec alac "% ~ nf.m4a"
Posso confirmar que isso funcionou para mim (OS X 10.8.2), usando `brew install ffmpeg`. Ele instalou as dependências `texi2html`,` yasm`, `x264`,` faac`, `lame` e` xvid`. Tudo levou cerca de 10 minutos para instalar.
Eu apenas acrescentaria que -vn (não manipular video0 às vezes é útil se o .flac tiver um mjpeg no stream. Esperançosamente, o Apple iTunes pode obter a capa do álbum para você ou você pode mesclá-la a partir de outra fonte.
David Budiac
2011-04-07 19:27:35 UTC
view on stackexchange narkive permalink

X Lossless Decoder (XLD) é uma excelente ferramenta perfeita para ripar sem perdas e conversão em lote para Mac.

Ouvi muitas coisas sobre como obter ripas perfeitas sem perdas usando Cópia exata de áudio (EAC) no Windows, embora não tenha certeza se ela oferece suporte à conversão.

Grande fã de XLD. Eu o tenho usado há anos para mover shows de Phish para minha biblioteca do iTunes.
é possível ir direto de flac para alac com xld embora? parece que você tem que ir primeiro via wav / aiff
deixa pra lá ... ele vem com uma interface gráfica e pode de fato transcodificar direto para arquivos ALAC m4a
Kariem
2012-12-13 15:39:09 UTC
view on stackexchange narkive permalink

se você quiser converter todos os arquivos flac em pastas e subpastas, adicione recursivamente / r ao comando for loop como:

  for / r %% a in (".flac") do ffmpeg -i "%% a" -acodec alac "%% a.m4a" -map_metadata input.flac: output.m4a  

O único problema que tenho com isso é que os nomes dos arquivos vêm como

  output.flac.m4a  

Não tenho ideia de como consertar isso no final, mas pelo que vi, não t FAÇA o arquivo ser nomeado desta forma.

EDITAR: Substituindo o código de saída por

  "%% ~ na.m4a"  

para que o código completo se pareça com

  for / r %% a in (".flac") do ffmpeg -i "%% a" -acodec alac "%% ~ na .m4a "-map_metadata input.flac: output.m4a  

FARÁ que os nomes dos arquivos sejam parecidos com

output.m4a 

MAS irá salvar as cópias convertidas na ROOT da pasta que você executou o comando. Para esclarecer, o arquivo flac está localizado em

  C: \ music \ foo \ bar.flac  

o arquivo alac será salvo em

 C:\music\bar.m4a 
Este exemplo converte, mas salva a saída na pasta de onde você começa, não na pasta em que o arquivo original está. Você também pode querer que seu código final seja o primeiro exemplo. Você pode ir direto ao ponto primeiro e, em seguida, explicar mais tarde, se desejar.
Ilya
2012-11-07 04:50:59 UTC
view on stackexchange narkive permalink

Esta é a variante do Windows da resposta de boehj:

  for% f in (* .flac) do ffmpeg.exe -i "% f" -acodec alac "% ~ nf.m4a"  
Não posso comentar sobre a postagem de Ilya, então tenho que deixar outra resposta ... a variante para Powershell em vez de cmd para windows seria: `Get-ChildItem. -filter * .flac | ForEach-Object {ffmpeg -i "$ _" -acodec alac "$ ($ _. Basename) .m4a"} `
Rory Alsop
2011-04-07 15:38:12 UTC
view on stackexchange narkive permalink

Há uma grande variedade de aplicativos para Windows e OSX -

você pode tentar Audio Transcoder

ou Max

ou vários outros ( o google encontrará muitos)

Ou você pode converter FLAC para WAV e deixar o iTunes fazer o resto

Friend Of George
2011-04-07 18:02:38 UTC
view on stackexchange narkive permalink

XRECODE faz um ótimo trabalho de conversão em lote. Tenho certeza de que é apenas um front-end para ffmpeg. Ele mantém suas tags e imagens incorporadas (para a maioria dos formatos - veja esta resposta para exceções) durante a conversão.

A versão atual tem uma versão de teste totalmente funcional que não expira (completa com tela nag), mas você pode baixar a versão anterior gratuitamente.

Não tentei a conversão para ALAC, mas ela faz um ótimo trabalho na conversão de FLAC, MP3, WMA e OGG.

Sun W Kim
2012-11-24 12:10:52 UTC
view on stackexchange narkive permalink

Eu fui ao site FFmpeg para baixar o ffmpeg Win32 mais recente de 20/11/2012.

Você pode precisar do 7zip para extrair os EXEs e colocá-los em um caminho que seja reconhecido.

Ainda não consigo descobrir como executar o comando recursivamente. Tentei usar um comando DOS antigo chamado sweep e também forfiles -s -c , mas nenhum dos dois funcionou corretamente.

Acabei gerando uma lista de arquivos flac incluindo seus caminhos usando este comando DOS:

  m: \ flac> dir * .flac / b / s > flac_convert.bat  

Eu usei o recurso de macro em NotePad ++ (freeware) para mudar a linha

de:

  M: \ flac \ Art Of Noise \ Moments In Love .flac  

para:

  ffmpeg -i "M: \ flac \ Art Of Noise \ Moments In Love.flac" -acodec alac "M: \ flac \ Art Of Noise \ Moments In Love.m4a " 

Depois de usar a macro para alterar todas as linhas, salvei e executei flac_convert.bat

A solução não é elegante, mas funciona apenas com ferramentas gratuitas.

Sun
2014-11-19 23:29:59 UTC
view on stackexchange narkive permalink

Para usuários de lote do DOS do Windows, isso converterá todos os FLAC do diretório atual e recursará para salvar a saída no mesmo diretório em que o FLAC está. Coloquei o echo na linha de comando para você pode testar a saída antes de realmente iniciar o processamento. Remova o echo se estiver satisfeito com os resultados.

para / r "." % x em (* .flac) echo ffmpeg -i "% ~ fx" -acodec alac "% ~ dpnx.m4a"

  • para / r percorrerá os arquivos (recurse subpastas)
  • . é o caminho atual, mas você pode especificar algo específico como c: \ flac
  • % x é seu parâmetro substituível. Em arquivos em lote, adicione outro% para que seja %% x.
  • * .flac procurará apenas arquivos com a extensão flac no subdiretório atual e nos subdiretórios
  • o que vem depois de do é o comando real que será executado
  • % ~ fx é uma extensão de parâmetro que expandirá o % x variável para um nome de caminho totalmente qualificado (por exemplo, c:\flac\song.flac)
  • % ~ dpnx é outro parâmetro extensão que é combinada com 1) exibir apenas a letra da unidade, exibir o caminho apenas com barra invertida e, finalmente, um nome de arquivo sem uma extensão de arquivo. Em nosso exemplo, c: \ flac \ song.flac agora se torna c:\flac\song
  • finalmente adicionamos .m4a manualmente para indicar a extensão de saída que queremos.
  • O comando final construído será semelhante a: ffmpeg -i "c: \ flac \ song.flac" -acodec alac "c: \ flac \ song.m4a "

aviso uma vez que há um limite de 255 caracteres para caminhos de arquivo, seus arquivos podem não ser processados ​​se a estrutura do diretório é profundo.



Estas perguntas e respostas foram traduzidas automaticamente do idioma inglês.O conteúdo original está disponível em stackexchange, que agradecemos pela licença cc by-sa 2.0 sob a qual é distribuído.
Loading...