ffmpeg y el error 'no se puede encontrar la salida adecuada'

17

Estoy tratando de convertir un MKV grande en un archivo AVI de la vieja escuela.

Estoy intentando esto:

ffmpeg -i video.mkv -s -codec:v mpeg4 -bf 1 -b 2567k -mbd 2 -g 300 -flags cgop -acodec copy video.avi

pero consigo

[NULL @ 0x7fa0d901e600] Unable to find a suitable output format for 'mpeg4' mpeg4: Invalid argument

Versión larga del mensaje de ffmpeg ...

ffmpeg version 2.1.3 Copyright (c) 2000-2013 the FFmpeg developers
  built on Feb  4 2014 17:53:32 with Apple LLVM version 5.0 (clang-500.2.79) (based on LLVM 3.3svn)
  configuration: --prefix=/usr/local/Cellar/ffmpeg/2.1.3 --enable-shared     --enable-pthreads --enable-gpl --enable-version3 --enable-nonfree --enable-     hardcoded-tables --enable-avresample --enable-vda --cc=clang --host-cflags=        --host-ldflags= --enable-libx264 --enable-libfaac --enable-libmp3lame --enable-libxvid
  libavutil      52. 48.101 / 52. 48.101
  libavcodec     55. 39.101 / 55. 39.101
  libavformat    55. 19.104 / 55. 19.104
  libavdevice    55.  5.100 / 55.  5.100
  libavfilter     3. 90.100 /  3. 90.100
  libavresample   1.  1.  0 /  1.  1.  0
  libswscale      2.  5.101 /  2.  5.101
  libswresample   0. 17.104 /  0. 17.104
  libpostproc    52.  3.100 / 52.  3.100
Input #0, matroska,webm, from ‘video.mkv':
  Metadata:
    creation_time   : 2011-05-11 09:25:47
  Duration: 00:49:01.35, start: 0.000000, bitrate: 2851 kb/s
    Stream #0:0(eng): Video: h264 (High), yuv420p(tv, bt709), 1280x720, SAR 1:1 DAR 16:9, 23.98 fps, 23.98 tbr, 1k tbn, 47.95 tbc (default)
    Stream #0:1(eng): Audio: ac3, 48000 Hz, 5.1(side), fltp, 384 kb/s (default) (forced)
    Stream #0:2(eng): Subtitle: subrip
[NULL @ 0x7fa0d901e600] Unable to find a suitable output format for 'mpeg4' 
mpeg4: Invalid argument

¿Tienes idea de lo que está pasando?

EDITAR: tenía la intención de usar ffmpeg después de que DivX Converter, tanto en Mac como en Windows, fallara en varios puntos al intentar transcodificar un video al perfil de DivX Home Theater. Lo más cerca que obtuve fue la respuesta de Shlck. Solo arrojó advertencias (en lugar de errores). En cualquier caso, no pude reproducir el video en el reproductor de DVD (se congelaba cada 10 segundos durante aproximadamente 6 segundos). Si ha encontrado esta pregunta mientras intentaba investigar la creación de un video compatible con el perfil de DivX Home Theater, podría usar esta cadena como punto de partida para descubrir qué está mal y publicar una nueva pregunta de seguimiento en SU:

ffmpeg -i video.mkv -s 720x406 -codec:v mpeg4 -bf 1 -b:v 2567k -mbd 2 -g 300 -flags cgop -sc_threshold 1000000000 -acodec copy video.avi

(Al final regalé el viejo reproductor de DVD).

iceequal
fuente
-s es para especificar el tamaño de la salida. El formato es -swxh, donde w y h es el ancho y la altura de la salida.
Vineet Menon
Gracias, pero si lees mi edición, o la respuesta y los comentarios de slhck que acepté, verás que eso fue lo primero que se corrigió.
iceequal
¡Si! Vi tu pregunta editada un poco tarde.
Vineet Menon

Respuestas:

14

Tienes una -sopción solitaria allí. Se pierde su argumento.

Debe especificar el tamaño que desea o dejarlo por completo; de lo contrario, no se interpretará -codec:vcorrectamente y supondrá que mpeg4es su nombre de archivo de salida.

Además, use en -b:vlugar de solo -b: es ambiguo.

ffmpeg -i video.mkv -s 1280x720 -codec:v mpeg4 -bf 1 -b:v 2567k -mbd 2 -g 300 -flags cgop -acodec copy video.avi
slhck
fuente
¡Gracias! Puse -s 720x406 pero ahora obtengo: [mpeg4 @ 0x7fc13a813800] Relación de aspecto de píxel no válida 406/405, el límite es 255/255 reductor / [mpeg4 @ 0x7fc13a813800] Gop cerrado con detección de cambio de escena todavía no es compatible, establezca el umbral en 1000000000 (...) / Error al abrir el codificador para la secuencia de salida # 0: 0 - tal vez parámetros incorrectos como bit_rate, rate, width o height / Estoy usando la resolución que sugiere la aplicación DivX Converter para el 'Home Theater' perfil dado el mismo archivo de entrada (el convertidor DivX tiene errores fatales propios). ¿Alguna idea de a dónde ir desde aquí con ffmpeg?
iceequal
(También corregí la opción -b)
iceequal
Elimine el -flags cgopsi no necesariamente lo necesita. O agregar -sc_threshold 1000000000como una opción.
slhck
-sc_threshold 1000000000permitido ffmpeg para al menos transcodificar el archivo. Para cualquiera que intente crear un video compatible con el perfil de DivX Home Theater, consulte mi pregunta editada más arriba (tendrá que hacer más preguntas / investigaciones).
iceequal