videos swf programa para mejor gratis formato cualquier convertir convertidor como cambiar flash ffmpeg flash-video

flash - mejor - programa para convertir swf a mp4



¿Cómo mejor convertir archivos mp4 compatibles con Flash con FFMPEG? (8)

Estoy tratando de convertir diferentes archivos a un archivo .mp4 compatible con flash con ffmpeg, pero parece que no puedo hacer que funcione. Por supuesto, el objetivo es obtener la mejor calidad con el tamaño de archivo más pequeño.

Hasta ahora tengo esto, que funciona, pero no funciona en un reproductor flash por alguna razón. El resultado no es tan bueno, ¿cómo puedo mejorar esta conversión?

Este es el comando que estoy usando:

ffmpeg -i input.file -f mp4 -vcodec mpeg4 -r 25 -b 560000 -s 610x340 -acodec aac -ac 2 -ab 64 -ar 44100 output.file


Solo algunas ideas de por qué esto podría pasar

  • mp4 solo es compatible con flash 9.0.115.0 o superior, ¿qué versión está usando?
  • ¿el servidor web que aloja el archivo tiene la configuración del tipo mime mp4?

¿Juega cuando se convierte a FLV y es esa una opción? Luego usarías algo como las siguientes opciones

ffmpeg -i input.file -f flv -r 25 -b 560000 -s 610x340 -acodec mp3 -ac 2 -ab 64 -ar 44100 output.file


Encontré esto (muy detallado, no estoy seguro de qué parte de él incluso) fragmento en algún lugar de la web. Está hecho para hacer dos pasadas, por lo que no generará ningún video en la primera pasada, tendrás que configurarlo para hacer -pass 2 para ejecutar la segunda pasada y sacar el video real.

ffmpeg -y -i output.mp4 -vcodec libx264 -acodec libfaac -ab 12000 -ac 2 -b 200000 -threads 2 -flags +loop -cmp +chroma -partitions 0 -subq 1 -trellis 0 -refs 1 -coder 0 -me_range 16 -g 300 -keyint_min 25 -sc_threshold 40 -i_qfactor 0.71 -maxrate 10M -bufsize 10M -rc_eq /’blurCplx^(1-qComp)/’ -qcomp 0.6 -qmin 10 -qmax 51 -qdiff 4 -level 30 -s 304x224 -pass 1 yourinfile.avi

Para obtener una reproducción progresiva durante la descarga, también deberá mover los metadatos al inicio del archivo. ffmpeg pone esto al final y flash necesita esto antes de que pueda comenzar a jugar. Una herramienta útil para esto es QTIndexSwapper


FLV y MP4 son contenedores de medios.

MPEG-4 parte 2 y H.264 son códecs de video. (y H.264 da mucha mejor calidad)

libx264 es un codificador para códec H.264.

mpeg4 es un codificador para MPEG-4 parte 2 codec.

Flash solo puede reproducir el códec de video H.264 en contenedor FLV.

Entonces los params deberían ser así:

-f flv -vcodec libx264


Utilizo una secuencia de comandos para hacer esto, comenzando con mencoder. (ver el script a continuación). El truco es que la salida del archivo mp4 de ffmpeg (y del mencoder) generalmente no es compatible con flash debido a la forma en que se intercala y no ofrecen un buen control sobre este comportamiento. Entonces, produzco un archivo AVI y luego uso mp4box para remezclarlo como quiero. Aquí está mi script completo, que espera recibir un archivo .avi y produce un archivo .mp4 que se puede reproducir con flash.

#!/bin/bash # ORIGDIR=`pwd` FILE=$@ VID_OUTPUT=${FILE/.AVI/.tmp.avi} FINAL_OUTPUT=${FILE/.AVI/.mp4} MENCODER=~/src/mplayer/svn/mplayer/mencoder BITRATE=500 RES=640:480 LOG=mencoder.$FILE.log TEMPDIR=`mktemp -d /tmp/transcode.XXXXXXXX` pushd $TEMPDIR echo "Pass 1" PARAMS=keyint=250:bframes=0:qp_min=10:qp_max=51:turbo=1:mixed_refs=0:frameref=1:deblock=0,0:qblur=0:vbv_bufsize=10000:vbv_maxrate=10000:keyint_min=25:me=hex:me_range=16:ip_factor=1.4:pb_factor=1.3:chroma_qp_offset=0:vbv_init=0.9:ratetol=1.0:cplx_blur=20:nocabac:noweight_b:nob_pyramid:partitions=p8x8,b8x8,i4x4:no8x8dct:nossim:deadzone_inter=21:deadzone_intra=11 EXTRA_PARAMS=subq=5:trellis=0: $MENCODER $ORIGDIR/$FILE -o $VID_OUTPUT -oac faac -srate 44100 -ovc x264 -x264encopts bitrate=$BITRATE:$PARAMS:pass=1 -vf scale=$RES 2>&1 >> $LOG echo "Pass 2" $MENCODER $ORIGDIR/$FILE -o $VID_OUTPUT -oac faac -srate 44100 -ovc x264 -x264encopts bitrate=$BITRATE:$PARAMS:pass=2 -vf scale=$RES 2>&1 >> $LOG MP4Box -aviraw video $VID_OUTPUT MP4Box -aviraw audio $VID_OUTPUT TEMP_AUDIO=${VID_OUTPUT/.avi/}_audio.raw AAC_AUDIO=${TEMP_AUDIO/.raw/.aac} H264_VIDEO=${VID_OUTPUT/.avi/}_video.h264 echo TEMP is $TEMP_AUDIO echo AAC is $AAC_AUDIO echo H264 is $H264_VIDEO mv $TEMP_AUDIO $AAC_AUDIO MP4Box -add $H264_VIDEO:fps=29.97 -add $AAC_AUDIO $FINAL_OUTPUT mv $LOG $ORIGDIR mv $FINAL_OUTPUT $ORIGDIR popd echo Files left in $TEMPDIR # rm -fr $TEMPDIR


Si está utilizando ffmpeg para crear .mp4s, busque en el directorio ffpresets / y use -vpre. Las opciones predeterminadas (para todos los códecs, pero especialmente para libx264) son muy malas y prácticamente todas deberían configurarse como algo personalizado. -vpre se encarga de la mayor parte de x264.


En mi colección de fragmentos tengo lo siguiente para esta tarea.

ffmpeg primer pase:

ffmpeg -y -i input.mp4 -pass 1 -vcodec libx264 -b 2000k -g 300 -bf 3 -refs 6 -b_strategy 1 -coder 1 -qmin 10 -qmax 51 -sc_threshold 40 -flags +loop -cmp +chroma -me_range 16 -me_method umh -subq 7 -i_qfactor 0.71 -qcomp 0.6 -qdiff 4 -directpred 3 -flags2 +dct8x8+wpred+bpyramid+mixed_refs -trellis 1 -partitions +parti8x8+parti4x4+partp8x8+partp4x4+partb8x8 -acodec libfaac -ab 128k output.mp4

ffmpeg segundo pase:

ffmpeg -y -i input.mp4 -pass 2 -vcodec libx264 -b 2000k -g 300 -bf 3 -refs 6 -b_strategy 1 -coder 1 -qmin 10 -qmax 51 -sc_threshold 40 -flags +loop -cmp +chroma -me_range 16 -me_method umh -subq 7 -i_qfactor 0.71 -qcomp 0.6 -qdiff 4 -directpred 3 -flags2 +dct8x8+wpred+bpyramid+mixed_refs -trellis 1 -partitions +parti8x8+parti4x4+partp8x8+partp4x4+partb8x8 -acodec libfaac -ab 128k output.mp4

La configuración de calidad es 2000k = velocidad de bits de video, 128k = bitrate de audio y 300 = GOP. No me preguntes cuáles son los otros parámetros. :)

Intercalado con MP4Box:

MP4Box -inter 500 output.mp4

Cree una imagen en miniatura / póster (juegue con 5 para obtener su imagen deseada)

ffmpeg -itsoffset -5 -i output.mp4 -vcodec mjpeg -vframes 1 -an -f rawvideo -s 1280x720 thumbnail.jpg

Espero que esto ayude.


Para crear los metadatos de entrelazado (que permitirán reanudar a mitad de camino, y rebobinar / avanzar), use las utilidades gpac (incluidas en medibuntu, por ejemplo) para volver a intercalar el archivo. Convierta a mp4 de la siguiente manera, con la versión 0.5 de FFmpeg o superior:

ffmpeg -f mp4 -i video.mov -b 400k video.mp4

entonces

/usr/bin/MP4Box -inter 500 video.mp4

Tada! ¡Hecho! Esto se transmitirá correctamente en JW Flv u otros reproductores flash.


En realidad, no deberías estar utilizando maxrate, especialmente un maxrate de 10000k cuando tienes tu bitrate explícitamente establecido en 200k. De hecho, mirando esto aún más cerca, realmente no creo que entiendas para qué sirve la mayoría de esas cosas :)

Para empezar, está llamando al archivo de entrada output.mp4, más el archivo de salida (que en realidad debería ser / dev / null para el pase 1) se llama yourinfile.avi y no ha configurado realmente un formato de contenedor, por lo que lo que terminaría con es un archivo avi codificado h264.

Pruebe esto para obtener videos MPEG-4 con codificación H264 de alta calidad y 1080p HD flash, primero cree un archivo con los siguientes contenidos en el mismo directorio que el video que está codificando y nómbrelo como flash-mp4.ffpreset

vcodec=libx264 b=5000k acodec=libfaac ab=256k ac=2 ar=44100 coder=1 flags=+loop+mv4 cmp=+chroma partitions=+parti8x8+parti4x4+partp8x8+partb8x8 me_method=umh subq=8 me_range=16 g=250 keyint_min=25 sc_threshold=40 i_qfactor=0.71 b_strategy=2 qcomp=0.6 qmin=10 qmax=51 qdiff=4 bf=3 refs=4 directpred=3 trellis=1 flags2=+wpred+mixed_refs+dct8x8+fastpskip wpredp=2 fflags=+rtphint profile=1

luego desde la línea de comando:

ffmpeg -y -i sourcefile.avi -fpre ./flash-mp4.ffpreset -f mp4 outputfile.f4v

Eso debería jugar perfectamente con flash 10+