ffmpeg videó átkódolása audió-only paraméterezés

Fórumok

Sziasztok,

van néhány videóm (.MP4 konténer), amiknél az audió stream AAC-ben van. Ezekből szeretném kinyerni az audió-t miközben átkódolom MP3-ba.
Eddig ez volt a nyerő cmdline:

ffmpeg.exe -i "input_video_file.mp4" -vn -c:a "mp3" -f mp3 "output_file_mp3_only"

A forrás így néz ki:

Stream #0:1(eng): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 125 kb/s (default)

A gond, h. a cél fájl CBR 128kbit-es MP3 lesz, holott ennél nagyobb bitrate jót tenne a végeredmény minőségének.
FFmpeg doksit hiába olvastam, elveszek a paraméterek tengerében (ezt az audio-only output in MP3-at is úgy kellett összeollóznom, mert amíg nem ezt adtam meg bitre pontosan, istennek nem akarta elfogadni, a parser hibaüzenetei meg mindenre jók csak a hibát megmondani nem).

Ötlete bárkinek, pontosan mit és hova írjak még bele, h. VBR 128-256 MP3 jöjjön ki a cső végén?

Hozzászólások

-q:a 1

ezzel 190-250 kb/s között lesz az mp3 bitrate. A LAME enkóderrel 10 lépcsőben tudod állítani a VBR bitrate-et. "0" a legjobb (220-260 kb/s), "9" a legrosszabb (45-85 kb/s)

Lásd:
https://trac.ffmpeg.org/wiki/Encode/MP3

Szerkesztve: 2020. 06. 30., k - 17:05

Update: kijött a ffmpeg 4.3.0, felraktam, természetesen nem működik az előtte 2 évig jól működő paraméterezett példa:

ffmpeg.exe -i "input_video.mp4" -vn -c:a "mp3" -f mp3 -q:a 1 "output_audio.mp3"

 

Output #0, mp3, to 'output_audio.mp3':
  Metadata:
    major_brand     : dash
    minor_version   : 0
    compatible_brands: iso6mp41
    TSSE            : Lavf58.45.100
    Stream #0:0(eng): Audio: mp3 (mp3_mf), 44100 Hz, stereo, s16, 128 kb/s (default)

Akármilyen -q:a <number> értékre ugyanezt adja.

 

4.2.3 alatt már látszik, miért működik másképpen:

Output #0, mp3, to 'c:\downloads\newretrowave_mp3\Kotovsky86-Space Traveller6.mp3':
  Metadata:
    major_brand     : dash
    minor_version   : 0
    compatible_brands: iso6mp41
    TSSE            : Lavf58.29.100
    Stream #0:0(eng): Audio: mp3 (libmp3lame), 44100 Hz, stereo, fltp (default)

 

Asszem maradok 4.2.3 alatt....

Output #0, mp3, to 'output_audio.mp3':
  Metadata:
    TSSE            : Lavf58.45.100
    Stream #0:0: Audio: mp3 (libmp3lame), 48000 Hz, stereo, fltp
    Metadata:
      encoder         : Lavc58.91.100 libmp3lame

Linux alatt nincs vele gond. Szerintem keress másik ffmpeg-et Windowsra.

Az elmélet az, amikor mindent ismerünk, de semmi nem működik. A gyakorlat az, amikor minden működik, de senki nem tudja, miért.

ffmpeg -i "valami.mp4" -ab 320000 "valami.mp3"

Persze, sokkal jobb először wav-ot csinálni, azt meg lame -vel átkódolni mp3-ra. A lame sokkal kifinomultabb az mp3 témában.

-fs-
Az olyan tárgyakat, amik képesek az mc futtatására, munkaeszköznek nevezzük.

> az -ab meg tudtommal syntax error

Nem biztos. Ha regebben volt ilyen kapcsoloja az FFmpeg-nek, akkor backward compatibility van es eleg sokmindent tamogat. Pl a -vcodec / -acodec is mar ezer eve nem letezo switchet (-c:a es -c:v van helyette), megis supported.

Blog | @hron84

valahol egy üzemeltetőmaci most mérgesen toppant a lábával 

via @snq-