Esta pregunta ya tiene una respuesta aquí:
Actualmente estoy convirtiendo archivos flash .flv a archivos .webm y .mp4 para usarlos con un reproductor de video HTML5.
_ _
Utilizo este comando ffmpeg para WEBM: ffmpeg -i filename.flv -vcodec libvpx -acodec libvorbis filename.webm
que funciona muy bien y el tamaño del archivo se mantiene relativamente igual (importante).
_ _
Para MP4 estoy usando lo siguiente: ffmpeg -i filename.flv -sameq -ar 22050 filename.mp4
Se convierte a .mp4 bien y evita cualquier pérdida de calidad, pero el tamaño del archivo casi se triplica.
¿Qué fórmula de ffmpeg podría usarse para convertir a MP4 sin perder demasiada calidad y evitar un tamaño de archivo mucho mayor?
mpeg4
. Según la salida deffmpeg --help muxer=mp4
mi máquina, ffmpeg usa h264 como códec de video predeterminado de mp4.Este comando solo cambia el contenedor sin volver a codificar
fuente
for %%a in ("*.flv") do ffmpeg -i "%%a" -codec copy "%%~na.mp4"
luego ejecute convert.bat en la carpeta con archivos * .flv-codec copy
a un archivo .mp4 solo funciona en el caso muy raro de que el audio y el video ya estén codificados con H.264 y AAC. Ver superuser.com/a/1009539/390946 y addpipe.com/blog/flv-to-mp4 .avconv
yffmpeg
son esencialmente lo mismo. [a partir de MUY recientemente hay ALGUNA divergencia, pero no hay mucho de qué hablar si compila la suya propiaffmpeg
[la que se proporciona en los repositorios de Ubuntu, por ejemplo, es VIEJA y sufre de que el tamaño del video no sea un bla, bla, bla, trato [básicamente intenta para decirle que el video tiene proporciones incorrectas], pero si se molesta en leer laffmpeg
guía de compilación y compilarla desde git, no tiene ninguno de los problemas de las versiones anteriores que vienen en la mayoría de los sistemas operativos. la advertencia en referencia a la depreciaciónavconv
que está diciendo que ellos han creado una nueva util para tratar de reemplazarffmpeg
, pero es SO utiliza ampliamente que incluso si trataban cual fue cortada que todos estaríamos creando enlaces simbólicos a partiravconv
deffmpeg
de todos modos para que no dejen de trabajar y lo dejen caer.]]No es algo malo de usar
avconv
, acabo de ver la respuesta que menciona la advertencia de depreciación, que es esencialmente un mensaje vacío, debería ser más una alternativa a ffpmeg que podría probar avconv, que es más fiel al caso aquí.es realmente lo MISMO que
esencialmente en el primero está usando las opciones de mano más corta y en el segundo está la variedad más escrita.
TAMBIÉN
-map 0
se refiere a las pistas de audio, por lo que si usa algo como lomp4a
que puede manejar múltiples pistas de audio bien, puede dejar esto para copiar todas las secuencias de audio en el archivo resultante. Esto solo es necesario si usa un códec que no admite múltiples pistas de audio en el mismo archivo, entonces querrá asignar el audio necesario y no todos. Por supuesto, si intenta minimizar el espacio utilizado, puede especificar solo uno para tratar de eliminar un poco de tamaño del archivo [el audio es como un 1/3 del tamaño de la pista de video [y eso es generoso]].-c:v = codec(video)
entonces:-c:v libx264
es lo mismo que usar:-vcodec libx264
FYI; lo mismo con este ejemplo:-c:v copy = -vcodec copy
y, además, para los FLV, tenga cuidado de que el archivo flv sea el mismo que un avi ya que es un contenedor que puede contener cualquier número de códecs para video o audio. Debería usar primero la utilidad de inspección de medios de su elección para ver qué se usa dentro del archivo antes de elegir copiar el flujo de video y / o audio o si desea transmitirlo de lo que sea a algo nuevo. Por lo tanto, el comando que funciona mejor para un FLV puede no ser el mismo para otro FLV [por supuesto, USUALMENTE si obtiene múltiples FLV de la misma fuente, se codificarán de la misma manera, pero nunca es una garantía].
No traté de elegir con precisión solo encontré esto en la búsqueda web y quería ayudar a aclarar un poco las cosas para la gente.
Nuevamente, como esta respuesta indica la respuesta debajo de esta, SÍ ejecutando ffmpeg siempre publicará ese mensaje, es esencialmente hueco ya que estas 2 utilidades siguen siendo la misma utilidad con muy poca diferencia. En casi todos los casos, debería obtener exactamente los mismos resultados con cualquiera de los comandos. Esto no necesariamente va a resultar en una nueva transcodificación completa, ¿por qué? A, si no es necesario, ahorra un montón de tiempo, y B si vuelve a transcodificar un archivo que ya se ha comprimido en un códec de video, básicamente está ejecutando una rutina de compresión contra algo que ya está comprimido y siempre dará como resultado en menos calidad que la fuente. La mayoría de los códecs más nuevos son algo compatibles entre sí [no todos] como, por ejemplo, un flv podría ser técnicamente un MP4 dentro de un contenedor FLV, ya que los FLV como AVI son solo contenedores de otros códecs. Entonces, depende de lo que tenga la fuente flv para el video y el códec ausio en comparación con lo que está convirtiendo en si necesita ser transcodificado. Si dentro del FLV usaran el video H264 MP4 y MP4a para audio, no necesitaría volver a transcodificar lo que solo necesitaría para copiarlo y ajustar los encabezados de los archivos para que se lea como un verdadero MP4 en lugar de un video MP4 dentro de un archivo FLV.
fuente
De acuerdo con esta guía , el comando adecuado para convertir FLV a MP4 sin ninguna codificación AV es este:
Funcionó perfectamente para mí en todos los casos con video AVC y audio AAC o MP3.
fuente
Cuando uso ffmpeg, recibí una advertencia de desuso para usar avconv. Usando avconv obtuve buenos resultados:
Leer
man avconv
para más información.fuente
ffmpeg
en sí mismo no está en desuso . La razón por la que se ve bien es porque especifica el codificador x264 que tiene una buena configuración predeterminada de calidad.Le sugiero que cree un script de shell para ese llamado
video_flv_to_mp4
con el siguiente contenido:Luego ejecútelo así:
Le dará un archivo video.flv.mp4.
fuente
-sameq
ya no es una opción válida para ffmpeg. Tampoco significa "misma calidad". Ver también esta publicación .