Questão O ffmpeg mostra codecs de áudio suportados pelo formato do contêiner e pelo codec de vídeo


Para automatizar scripts para manipular arquivos de vídeo, eu gostaria de obter uma lista de codecs de áudio suportados - de preferência com seus codificadores - com base em um codec de vídeo e formato contêiner (também pode ser conhecido como muxer ou demuxer), como suportado por ffmpeg.

Descubra o codec de vídeo usando:

ffprobe -v error -select_streams v:0 -show_entries stream=codec_name \
  -of default=noprint_wrappers=1:nokey=1 video.mp4

que retorna h264. Descubra o formato do contêiner usando:

ffprobe -v error -select_streams v:0 -show_format_entry format_name \
  -of default=noprint_wrappers=1:nokey=1 video.mp4

Que retorna mov,mp4,m4a,3gp,3g2,mj2.

Assumimos que o arquivo de vídeo de entrada não tem fluxo de áudio, então não podemos simplesmente usar:

ffprobe -v error -select_streams a:0 -show_entries \
  stream=codec_name -of default=noprint_wrappers=1:nokey=1 video.mp4

que de outra forma retornaria aac.

Os comandos em https://stackoverflow.com/a/20587693/188159 pode ter a solução, mas não consegui descobrir como filtrá-los.


1


origem


Talvez eu não siga bem o que você está tentando fazer, mas ffmpeg escolherá automaticamente um codificador de áudio apropriado com base no formato de saída. Você pode visualizar os codificadores padrão, para o seu ffmpegcom ffmpeg -h muxer=mp4. Não sei por que você precisa de uma lista de formatos de áudio compatíveis por formato de contêiner de saída. Seus comandos "format" e "codec" são rotulados erroneamente pelo modo (trocá-los). - LordNeckbeard


Respostas: