Pular para o conteúdo

Transcodificar áudio AC-3 para AAC com FFmpeg e Senta

Para transcodificar o áudio de AC-3 para AAC mantendo o stream de vídeo inalterado, você pode usar o perfil ffmpeg abaixo.

Primeiro, você precisa adicionar um perfil para a transcodificação de áudio.

  1. Comece adicionando um novo perfil.

  2. No campo de comando do perfil, cole o comando a seguir e salve:

    Terminal window
    ffmpeg -re -i ${i} \
    -c:v copy \
    -map 0:v -map 0:a -c:a aac -b:a 128k \
    -f mpegts ${o}

    Onde:

    • ${i} - stream/arquivo de entrada
    • ${o} - stream/arquivo de saída
    • -c:v copy - copia o vídeo sem recodificá-lo
    • -map 0:v -map 0:a - mapeia o vídeo e todas as faixas de áudio
    • -c:a aac - transcodifica o áudio para o codec AAC
    • -b:a 128k - define o bitrate do áudio em 128 kbps
  1. Comece adicionando um novo stream

  2. Defina as variáveis de entrada e saída do stream.

  3. Salve e inicie o stream.

Clique no link log na linha do stream na tabela Streams. No início do log da sessão, o ffmpeg lista os streams de entrada (o áudio aparece como ac3) e o mapeamento dos streams: a linha do vídeo mostra copy e a linha do áudio termina com aac. Depois, as linhas de progresso (frame=, fps=, bitrate=) continuam crescendo. Veja Logs do stream.

  • Mapear apenas o áudio. Quando se usa qualquer -map, o ffmpeg deixa de escolher os streams automaticamente; por isso, o vídeo precisa do próprio -map 0:v. Sem ele, a saída fica sem vídeo.
  • Usar isso em uma fonte cujo áudio já é AAC. Não há nada para converter nesse caso.
  • Esperar um bitrate personalizado do perfil inicial. Ele não define nenhum, então vale o padrão do ffmpeg; use o comando acima para obter 128k.