ffmpeg pokazuje kodeki audio obsługiwane przez format kontenera i kodek wideo

1

Aby zautomatyzować skrypty do manipulowania plikami wideo, chciałbym uzyskać listę obsługiwanych kodeków audio - najlepiej z ich nazwami koderów - w oparciu o kodek wideo i format kontenera (może być również znany jako muxer lub demuxer), jak to jest obsługiwane przez ffmpeg.

Sprawdź kodek wideo za pomocą:

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

który wraca h264. Sprawdź format kontenera, używając:

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

Który wraca mov,mp4,m4a,3gp,3g2,mj2.

Zakładamy, że wejściowy plik wideo nie ma strumienia audio, więc nie możemy po prostu użyć:

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

które w przeciwnym razie wróciłyby aac.

Polecenia w https://stackoverflow.com/a/20587693/188159 mogą mieć rozwiązanie, ale nie udało mi się znaleźć sposobu ich filtrowania.

qubodup
źródło
1
Może nie podążam za tym, co próbujesz zrobić, ale ffmpegautomatycznie wybierzesz odpowiedni koder audio w oparciu o format wyjściowy. Możesz przeglądać domyślne kodery dla twojego ffmpeg, za pomocą ffmpeg -h muxer=mp4. Nie jestem pewien, dlaczego potrzebujesz listy obsługiwanych formatów audio na format wyjściowy kontenera. Twoje polecenia „format” i „kodek” są błędnie oznaczone (zamień je).
llogan