ffmpeg:從圖像創建視頻只需 1 秒視頻

ffmpeg:從圖像創建視頻只需 1 秒視頻

我正在嘗試使用 ffmpeg 在 Windows 電腦上從單一影像建立 5 秒的短影片檔案。此影片檔案用於連接使用可產生 1920x1080 60fps 的相機拍攝的影片檔案。以下創建 1 秒流而不是 5 秒流。有任何想法嗎?提前致謝。

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

這是我的輸出結果:

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

更新:得到了 5 秒的視頻,可以與以下視頻一起使用,但視頻不會與新製作的視頻連接。我想這可能需要一個新問題。

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

答案1

-loop選項適用於下一個輸入文件,因此在您的情況下可能不會對其進行解析。試試這個 - 為了簡潔起見,我省略了其他選項:

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

一些提示:

  • 您的 ffmpeg 版本已經有點過時了。總是嘗試使用最近的構建如果某件事失敗了。

  • -f image2是多餘的,因為 JPG 影像是用解image2復用器自動解析的。

  • 為了實現真正的恆定位元率,我相信您需要將-b:v-minrate和的所有三個設定-maxrate為相同的值。

  • 如今,您通常不想使用 MPEG-1 影片(mpeg1videoffmpeg 中的編碼器),尤其是高清內容。您最終會得到巨大的文件,或者在比特率受限的情況下品質非常差。儘管您指定了非常大的比特率(這真的是您想要的嗎?),但至少使用 MPEG-2 視頻,甚至 MPEG-4 Part 12(AVC、H.264)可能會更好。請參閱x264編碼指南對於一些選項。

相關內容