답변:
이것이 ffmpeg에서 간단한 옵션이 아닌 이유는 출력에 사용할 컨테이너를 결정하는 방법이 필요하기 때문입니다.
각 코덱에 사용할 파일 확장자를 결정하고 해당 확장자를 가진 파일 이름을 지정한 경우 ffmpeg는 출력 파일을 올바른 컨테이너에 작성합니다. 내가 생각할 수있는 가장 불행한 방법은 Python 2 스크립트입니다.
import re
import subprocess
import sys
EXTENSIONS_BY_CODEC = {'mp3': '.mp3', 'aac': '.m4a'}
# Add more codecs as desired
_, infile, outfile = sys.argv
_, detect_data = subprocess.Popen(('ffmpeg', '-i', infile),
stderr=subprocess.PIPE).communicate()
codec = re.search(r'Audio: ([^,]+),', detect_data).group(1)
if codec in EXTENSIONS_BY_CODEC:
sys.exit(subprocess.call(('ffmpeg', '-i', infile, '-acodec', 'copy', '-vn',
outfile + EXTENSIONS_BY_CODEC[codec])))
else:
print >>sys.stderr, 'Extension not found for codec:', codec
sys.exit(2)