Comando que codifica el perfil de línea base h264, nivel 1, con FFmpeg y libx264

3

¿Alguien puede sugerir un comando para codificar video en el perfil de línea base h264 (nivel 1)?

Aquí hay un enlace de referencia: http://blog.mediacoderhq.com/h264-profiles-and-levels/

Usé este comando pero FFmpeg dice que es el perfil principal, no la línea de base.

ffmpeg -i <SOURCE> -vcodec libx264 -coder 0 -flags +loop+mv4 \
-partitions +parti4x4+parti8x8+parti4x4+partp8x8+partb8x8 -me_method hex -subq 7 \
-trellis 1 -refs 5 -bf 0 -flags2 +mixed_refs -coder 0 -me_range 16 -threads 2 \
-s 240x160 -b:v 64k -g 250 -keyint_min 25 -sc_threshold 40 -i_qfactor 0.71 \
-qmin 10 -qmax 51 -qdiff 4 -strict experimental -acodec aac -ac 1 -ab 48000 \
-f mpegts udp://127.0.0.1:10006?pkt_size=1316
Morteza Milani
fuente

Respuestas:

6

Asegúrese de tener el último FFmpeg y libx264, esto es realmente importante * , y luego intente algo como:

ffmpeg -i … -c:v libx264 -profile:v baseline -level 1 …

Esto resultará en:

[libx264 @ 0x10180fa00] profile Constrained Baseline, level 1.0

Por supuesto, también puede suministrar las opciones -presety -tunea x264. Consulte x264 --fullhelppara más información.

Estas son las opciones x264 utilizadas:

cabac=0 ref=3 deblock=1:0:0 analyse=0x1:0x111 me=hex subme=7 psy=1
psy_rd=1.00:0.00 mixed_ref=1 me_range=16 chroma_me=1 trellis=1 8x8dct=0 
cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=-2 threads=12 
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=40 
rc=crf mbtree=1 crf=23.0 qcomp=0.60 qpmin=0 qpmax=69 
qpstep=4 ip_ratio=1.40 aq=1:1.00

* Funciona con FFmpeg 0.9 y x264 core 118. La -vprofileopción no estaba documentada en FFmpeg, ahora sí -profile:v. Ahora, básicamente, funciona igual -profile, que se supone de nuevo para reemplazar -vpre. Utiliza los perfiles integrados de x264 en lugar de confiar en los .ffpresetarchivos.

slhck
fuente
gracias. ¿La salida funciona en teléfonos Android?
Morteza Milani
Se reproduce en mi teléfono Android, sí.
slhck
no se pudo reproducir en el emulador Eclair de Android 2.1
leon
@leon He estado usando este comando todo el tiempo y funcionó para todos los dispositivos Android que he usado. Tal vez sea un problema con el emulador.
slhck
@slhck funciona en Android 2.2, solo falló en 2.1. El mismo archivo de formato generado con iMovie funciona bien en 2.1. Solo tuve la oportunidad de probar en el emulador, no en dispositivos reales.
Leon