Tenho um arquivo MKV com vídeo H.264 e áudio AAC. Com o FFmpeg, o codec de áudio padrão para MKV é AC3, então se você executar um comando como
ffmpeg -i infile.mkv -ac 2 outfile.mkv
ele transcodificará o áudio para AC3. Eu posso executar este comando e está tudo bem
ffmpeg -i infile.mkv -ac 2 -c:a libfdk_aac outfile.mkv
No entanto, existe uma maneira de dizer "usar o codec de entrada"? Observe que isso copy
não funcionará porque estou fazendo uma alteração no fluxo de áudio.
Responder1
Até onde eu sei, não existe essa opção. Você terá que ser explícito, confiar nos padrões ou executar scripts adicionais.
Se você acredita que isso deve ser implementado como um recurso, você pode criar uma solicitação de recurso noRastreador de bugs FFmpeg(pesquise primeiro para ver se já existe).
Observe que o codificador padrão para o formato do contêiner de saída pode mudar dependendo das bibliotecas de codificação externas suportadas. Por exemplo, se sua ffmpeg
compilação suportasse libvorbis, ele usaria isso em vez de ac3 para saídas mkv.
ffprobe
pode ajudar:
$ ffprobe -v 0 -of flat=s=_ -select_streams a:0 -show_entries stream=codec_name input.mkv
streams_stream_0_codec_name="aac"
É claro que isso pode ter utilidade limitada, pois codec_name
pode não ser o mesmo nome do codificador que você deseja.