Ekstrak audio apa pun dari wadah dengan ffmpeg


2

Apakah ada cara untuk digunakan -acodec copydengan -vn:

  • Ekstrak aliran audio dari wadah, seperti mp4
  • Tanpa mengetahui codec audio sebelumnya
  • Dan simpan ke file audio dengan ekstensi yang sesuai

2
Apakah "ekstensi yang sesuai" itu? Anda dapat menggunakan Matroska (.mka) atau mungkin NUT (.nut) dengan sebagian besar format audio, tapi saya ragu itulah yang Anda inginkan.
llogan

Jawaban:


0

Alasan ini bukan pilihan sederhana dalam ffmpeg adalah karena Anda perlu cara untuk memutuskan wadah apa yang akan digunakan untuk output.

Jika Anda menentukan ekstensi file mana yang akan digunakan untuk setiap codec, dan menamai file dengan ekstensi itu, ffmpeg akan menulis file output di wadah yang tepat untuk Anda. Cara (sayangnya) paling sederhana untuk melakukan ini yang dapat saya pikirkan adalah skrip 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)

-4

lihat handbrake, gui untuk ffmpeg dengan output commandline (dan command) (jika Anda ingin mem-port-nya ke suatu skrip)


2
Bagaimana ini membantu? Itu hanya melakukan hal yang sama seperti ffmpeg dengan gui, yang bukan apa yang diminta OP.
Lily Hahn
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.