Per automatizzare gli script per manipolare i file video, vorrei ottenere un elenco di codec audio supportati - idealmente con i loro nomi di codificatore - basato su un codec video e un formato contenitore (potrebbe anche essere conosciuto come muxer o demuxer), come supportato da ffmpeg
.
Scopri il codec video utilizzando:
ffprobe -v error -select_streams v:0 -show_entries stream=codec_name \
-of default=noprint_wrappers=1:nokey=1 video.mp4
che ritorna h264
. Scopri il formato del contenitore usando:
ffprobe -v error -select_streams v:0 -show_format_entry format_name \
-of default=noprint_wrappers=1:nokey=1 video.mp4
Che ritorna mov,mp4,m4a,3gp,3g2,mj2
.
Supponiamo che il file video di input non abbia flusso audio, quindi non possiamo semplicemente usare:
ffprobe -v error -select_streams a:0 -show_entries \
stream=codec_name -of default=noprint_wrappers=1:nokey=1 video.mp4
che altrimenti ritornerebbe aac
.
I comandi in https://stackoverflow.com/a/20587693/188159 potrebbero avere la soluzione ma non sono stato in grado di capire come filtrarli.
ffmpeg
sceglierò automaticamente un codificatore audio appropriato in base al formato di output. Puoi visualizzare gli encoder predefiniti, per il tuo particolareffmpeg
, conffmpeg -h muxer=mp4
. Non sono sicuro del motivo per cui è necessario un elenco di formati audio supportati per formato contenitore di output. I tuoi comandi "format" e "codec" sono etichettati erroneamente (scambiali).