ffmpeg: criar vídeo a partir de resultados de imagem em apenas 1 segundo de vídeo

0

Estou tentando criar um arquivo de vídeo curto a partir de uma única imagem por 5 segundos em uma máquina Windows usando o ffmpeg. O arquivo de vídeo deve ser usado para concatenar na frente de arquivos de vídeo tirados com uma câmera que produza 1920x1080 60fps. O seguinte cria um segundo fluxo em vez de um segundo segundo. Alguma ideia? obrigado antecipadamente.

"c:\program files\ffmpeg\ffmpeg32" -f image2 -i "c:\program files\ffmpeg\imput1.jpg" -loop 1 -vcodec mpeg1video -b:v 104857200 -r 59.94 -s 1920x1080 -aspect 16:9 -t 5 "c:\program files\ffmpeg\banner.MPG"

Aqui estão os resultados da minha saída:

<pre>c:\Program Files\ffmpeg>"c:\program files\ffmpeg\ffmpeg32" -f
image2 -i "input1.jpg" -loop 1 -vcodec mpeg1video -b:v 10 4857200 -r
59.94 -s 1920x1080 -aspect 16:9 -t 5 "c:\program files\ffmpeg\banner. MPG" ffmpeg version N-52045-g694fa00 Copyright (c) 2000-2013 the
FFmpeg developers built on Apr 12 2013 16:54:51 with gcc 4.8.0 (GCC)
configuration: --enable-gpl --enable-version3 --disable-w32threads
--enable-av isynth --enable-bzlib --enable-fontconfig --enable-frei0r --enable-gnutls --enab le-iconv --enable-libass --enable-libbluray --enable-libcaca --enable-libfreetyp e --enable-libgsm --enable-libilbc --enable-libmp3lame --enable-libopencore-amrn b --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-libr tmp --enable-libschroedinger --enable-libsoxr --enable-libspeex --enable-libtheo ra --enable-libtwolame --enable-libvo-aacenc --enable-libvo-amrwbenc --enable-li bvorbis --enable-libvpx --enable-libx264 --enable-libxavs --enable-libxvid --ena ble-zlib 
55. 0.100 libavfilter 3. 53.101 / 3. 53.101 libswscale 2. 2.100 / 2. 2.100 libswresample 0. 17.102 / 0. 17.102 libpostproc 52. 3.100 / 52. 3.100 Input #0, image2, from 'c:\program files\ffmpeg\input1.jpg': Duration: 00:00:00.04, start: 0.000000, bitrate: N/A Stream #0:0:
Video: mjpeg, yuvj420p, 722x267 [SAR 1:1 DAR 722:267], 25 tbr, 25 tbn,
25 tbc File 'c:\program files\ffmpeg\banner.MPG' already exists.
Overwrite ? [y/N] y VBV buffer size not set, muxing may fail Output
#0, mpeg, to 'c:\program files\ffmpeg\banner.MPG': Metadata: encoder : Lavf55.2.100 Stream #0:0: Video: mpeg1video, yuv420p, 1920x1080 [SAR
1:1 DAR 16:9], q=2-3 1, 104857 kb/s, 90k tbn, 59.94 tbc Stream
mapping: Stream #0:0 -> #0:0 (mjpeg -> mpeg1video) Press [q] to stop,
[?] for help frame= 1 fps=0.0 q=9.8 Lsize= 130kB time=00:00:00.01
bitrate=63812.1kbits /s video:130kB audio:0kB subtitle:0 global
headers:0kB muxing overhead 0.373990%

c:\Program Files\ffmpeg>> libavutil 52. 26.100 / 52. 26.100 libavcodec 55. 2.100 / 55. 2.100
libavformat 55. 2.100 / 55. 2.100 libavdevice 55. 0.100 /
</pre>

UPdate: Consegui o vídeo de 5 segundos para trabalhar com o seguinte, mas os vídeos não vão coincidir com o recém-feito. Eu acho que isso provavelmente garante uma nova pergunta.

"c:\program files\ffmpeg\ffmpeg32" -loop 1 -i graphic.jpg -s 1920x1080 -aspect 16:9 -t 5 -c:v libx264 banner.mp4 
    
por user1404 07.03.2014 / 20:57

1 resposta

2

A opção -loop se aplica ao próximo arquivo de entrada, portanto, provavelmente ele não será analisado no seu caso. Tente isso - deixei de fora as outras opções por uma questão de brevidade:

ffmpeg -loop 1 -i input.jpg -t 5 output.mp4

Algumas dicas:

  • Sua versão do ffmpeg já está um pouco desatualizada. Sempre tente usar uma compilação recente se algo falhar.

  • -f image2 é supérfluo, pois as imagens JPG são analisadas automaticamente com o image2 demuxer.

  • Para atingir a taxa de bits constante real, acredito que você precisa definir todos os três -b:v , -minrate e -maxrate para o mesmo valor.

  • Normalmente, você não deseja usar o vídeo MPEG-1 ( mpeg1video encoder no ffmpeg) atualmente, especialmente para conteúdo em HD. Você vai acabar com arquivos enormes ou com qualidade muito ruim para taxas de bits restritas. Embora você tenha especificado uma taxa de bits muito grande (é realmente o que você quer?), Talvez seja melhor usar pelo menos o vídeo MPEG-2 ou até mesmo o MPEG-4 Parte 12 (AVC, H.264). Consulte o guia de codificação x264 para algumas opções.

por 07.03.2014 / 21:11