ffmpeg: crear video a partir de resultados de imagen en solo 1 segundo de video

ffmpeg: crear video a partir de resultados de imagen en solo 1 segundo de video

Estoy intentando crear un archivo de video corto a partir de una sola imagen durante 5 segundos en una máquina con Windows usando ffmpeg. El archivo de video se utilizará para concatenar archivos de video tomados con una cámara que produce 1920x1080 60 fps. Lo siguiente crea una transmisión de 1 segundo en lugar de una de 5 segundos. ¿Algunas ideas? Gracias de antemano.

"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"

Aquí están mis resultados de salida:

<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>

ACTUALIZACIÓN: Conseguí que el video de 5 segundos funcione con lo siguiente, pero los videos no se conectarán con el recién creado. Supongo que esto probablemente justifica una nueva pregunta.

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

Respuesta1

La -loopopción se aplica al siguiente archivo de entrada, por lo que probablemente no se analice en su caso. Pruebe esto; omití las otras opciones en aras de la brevedad:

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

Algunos consejos:

  • Tu versión de ffmpeg ya está un poco desactualizada. Siempre intenta usaruna construcción recientesi algo falla.

  • -f image2es superfluo ya que las imágenes JPG se analizan image2automáticamente con el demuxer.

  • Para lograr una tasa de bits realmente constante, creo que es necesario establecer los tres de -b:vy -minrateen -maxrateel mismo valor.

  • Por lo general, hoy en día no desea utilizar video MPEG-1 ( mpeg1videocodificador en ffmpeg), especialmente para contenido HD. Terminará con archivos enormes o con una calidad realmente mala para velocidades de bits limitadas. Aunque especificaste una tasa de bits muy grande (¿es eso realmente lo que quieres?), sería mejor que al menos usaras video MPEG-2, o incluso MPEG-4 Parte 12 (AVC, H.264). Ver elguía de codificación x264para algunas opciones.

información relacionada