Wie gebe ich das H264-Basisprofil mit FFmbc an?

Ich verwende FFmbc (ein FFmpeg-Derivat), um einige Videodateien in H264 (in einem MOV-Wrapper) zu transkodieren.

Ich möchte ein Basisprofil angeben (um die CPU-Auslastung zu reduzieren), kann aber nicht herausfinden, wie. Es scheint keine einfache Option zu geben, dies anzugeben - ich verstehe, dass das Profil von den von mir angegebenen Optionen abgeleitet wird.

Die meisten Beispiele sind jedoch für FFmpeg und FFmbc lehnt sie ab.

Der Vorschlag, "-flags2 +bpyramid+wpred+mixed_refs-dct8x8" zu verwenden, gibt die Fehler:

[NULL @ 0x101093600] [Eval @ 0x7fff5fbfce20] Undefined constant or missing '(' in 'bpyramid'
[NULL @ 0x101093600] Unable to parse option value "bpyramid+wpred+mixed_refs-dct8x8"
[NULL @ 0x101093600] Error setting option flags2 to value +bpyramid+wpred+mixed_refs-dct8x8.

Was fehlt mir hier?

Antworten (4)

Hinweis: Dies gilt für aktuelles FFmpeg, nicht für FFmbc, das (noch) nicht dieselbe Optionssyntax verwendet.

Sie müssen die -profile:vOption verwenden, die in FFmpeg 0.9 (afaik) eingeführt wurde und jetzt in 1.0 Standard ist.

ffmpeg -i input.mp4 -c:v libx264 -preset fast -profile:v baseline out.mov

Wieso den? -profilewurde für die AAC-Codierung verwendet (und priorisiert). Es ist einfach mehrdeutig, daher benötigen Sie den Stream-Spezifizierer :v.

das ist für ffmpeg, ffmbc wurde noch nicht auf die neuere Syntax im "-vprofile"-Stil umgestellt.
Sie haben Recht. Damals, als ich dieses FFmpeg schrieb, war es kurz davor, das Ganze zu ändern, und alles war ein wenig verwirrend. +1 für Sie.

-profile baselinescheint bei mir mit libx264 zu funktionieren. Ich verwende die libx264-Voreinstellungen - zum Beispiel "langsam" gibt mir die unten aufgeführten Optionen. Es gibt schnell, langsam, sehr langsam und Placebo (vielleicht mehr, kann mich nicht erinnern).

stib$ ffmbc -i test.mov -vcodec libx264 -preset slow -profile baseline -acodec libfaac -ab 96k -crf 19 test.mp4
...
[libx264 @ 0x101858c00] profile Constrained Baseline, level 3.1
[libx264 @ 0x101858c00] 264 - core 120 - H.264/MPEG-4 AVC codec - Copyleft 2003-2011 - http://www.videolan.org/x264.html - options: cabac=0 ref=5 deblock=1:0:0 analyse=0x1:0x111 me=umh subme=8 psy=1 psy_rd=1.00:0.00 mixed_ref=1 me_range=16 chroma_me=1 trellis=0 8x8dct=0 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=-2 threads=6 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=0 weightp=0 keyint=250 keyint_min=25 scenecut=40 intra_refresh=0 rc_lookahead=50 rc=crf mbtree=1 crf=19.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00
Output #0, mp4, to 'test.mp4'

Ich hatte auch dieses Problem. Ich habe die zusätzlichen Leerzeichen in der Voreinstellungsdatei entfernt und es hat für mich funktioniert.

Um das Basisprofil festzulegen, verwenden Sie die folgenden ffmpeg-Optionen. Mobile Apps wie Neighboors by Ring verwenden das Basisprofil.

ffmpeg -i in_video.mp4 -vcodec libx264 -acodec aac -b:a 256k -vf scale=1280:720 -profile:v baseline out_video.mp4