¿Cómo especifico el perfil H264 de referencia usando FFmbc?

Estoy usando FFmbc (un derivado de FFmpeg) para transcodificar algunos archivos de video a H264 (en un contenedor de mov).

Quiero especificar el perfil de referencia (para reducir el uso de la CPU) pero no sé cómo. No parece haber una opción simple para especificar esto; entiendo que el perfil se deriva de las opciones que he especificado.

Sin embargo , la mayoría de los ejemplos son para FFmpeg y FFmbc los rechaza.

La sugerencia de usar "-flags2 +bpyramid+wpred+mixed_refs-dct8x8" da los errores:

[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.

¿Que me estoy perdiendo aqui?

Respuestas (4)

Nota: Esto es para FFmpeg reciente, no para FFmbc, que no usa la misma sintaxis de opciones (todavía)

Debe usar la -profile:vopción, que se introdujo en FFmpeg 0.9 (afaik) y ahora es estándar en 1.0.

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

¿Por qué? -profilese utilizó (y se priorizó) para la codificación AAC. Es simplemente ambiguo, por lo tanto, necesita el especificador de flujo :v.

eso es para ffmpeg, ffmbc aún no se ha movido a la sintaxis de estilo "-vprofile" más nueva.
Tienes razón. Cuando escribí este FFmpeg estaba a punto de cambiar todo y todo era un poco confuso. +1 para ti.

-profile baselineparece funcionar para mí, usando libx264. Uso los ajustes preestablecidos de libx264; por ejemplo, "lento" me da las opciones que se enumeran a continuación. hay rápido, lento, muy lento y placebo (puede ser más, no lo recuerdo).

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'

También tuve este problema. Eliminé los caracteres de espacio adicionales presentes en el archivo preestablecido y funcionó para mí.

Para configurar el perfil de línea de base, use las siguientes opciones de ffmpeg. Las aplicaciones móviles como Neighboors by Ring usan un perfil de referencia.

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