ffmpeg e o erro 'incapaz de encontrar uma saída adequada'


17

Estou tentando converter um grande MKV em um arquivo AVI da velha escola.

Estou tentando isso:

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

mas eu entendo

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

Versão longa da mensagem 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

Alguma idéia do que está acontecendo?

EDIT: Eu pretendia usar o ffmpeg após o DivX Converter - tanto no Mac quanto no Windows - falhar em vários pontos ao tentar transcodificar um vídeo no perfil do DivX Home Theater. O mais próximo que cheguei foi a resposta do shlck. Emitia apenas avisos (em vez de erros.) De qualquer forma, não conseguia reproduzir o vídeo no DVD player (congelava a cada 10 segundos por cerca de 6 segundos). Se você encontrou essa pergunta ao tentar pesquisar a criação de um vídeo compatível com o perfil do DivX Home Theater, poderia usar essa string como ponto de partida para descobrir o que há de errado e postar uma nova pergunta de acompanhamento no 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

(No final, eu dei o velho DVD player).


-s é para especificar o tamanho da saída. O formato é -swxh, em que w e h são a largura e a altura da saída.
Vineet Menon

Obrigado, mas se você ler minha edição, ou a resposta e os comentários de slhck que eu aceitei, você verá que foi a primeira coisa que foi corrigida.
iceequal

sim! Vi sua pergunta editada um pouco tarde.
Vineet Menon

Respostas:


14

Você tem uma -sopção solitária lá. Perde seu argumento.

Você deve especificar o tamanho desejado ou deixá-lo de fora por completo - caso contrário, ele não será interpretado -codec:vcorretamente e assumirá mpeg4o nome do arquivo de saída.

Além disso, use em -b:vvez de apenas -b- é ambíguo.

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

Obrigado! Coloquei -s 720x406, mas agora obtenho: [mpeg4 @ 0x7fc13a813800] Proporção de pixel inválida 406/405, o limite é 255/255 reduzindo / [mpeg4 @ 0x7fc13a813800] gop fechado com detecção de alteração de cena ainda não é suportado, defina o limite como 1000000000 (...) / Erro ao abrir o codificador para o fluxo de saída # 0: 0 - talvez parâmetros incorretos como bit_rate, taxa, largura ou altura / Estou usando a resolução que o aplicativo Conversor DivX sugere para o 'Home Theater' perfil dado o mesmo arquivo de entrada (o conversor DivX possui seus próprios erros fatais). Alguma idéia para onde ir a partir daqui w / ffmpeg?
iceequal

(Também corrigi a opção -b)
iceequal

Remova o -flags cgopse você não precisar necessariamente. Ou adicione -sc_threshold 1000000000como uma opção.
Slhck

-sc_threshold 1000000000permitido ao ffmpeg pelo menos transcodificar o arquivo. Para quem estiver tentando criar um vídeo compatível com o perfil DivX Home Theater, consulte minha pergunta editada acima (você precisará fazer mais perguntas / pesquisas).
iceequal
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.