video - ffmpeg : Generate video from picture

标签 video ffmpeg

我目前正在尝试从单张图片 (1980*1024) 生成视频
这是我的命令:

ffmpeg -threads 8 -r 1 -loop 1 -i "C:\Library\Titling\__Resources\1.jpg" -t 5.00 -pix_fmt yuv420p -vcodec libx264 -b:v 1500k -s 720:576 -aspect 1.0000 -y "D:\Records\2013-10-11_115453\PublishingDirectory\Temporary_WithtoutAudio1.mp4"

这里cmd执行:

ffmpeg version N-56297-g7ac6c63 Copyright (c) 2000-2013 the FFmpeg developers
built on Sep 15 2013 18:02:28 with gcc 4.7.3 (GCC)
configuration: --enable-gpl --enable-version3 --disable-w32threads --enable-avisynth --enable-bzlib --enable-fontconfig --enable-frei0r --enable-gnutls --enable-iconv --enable-libass --enable-libblu
ray --enable-libcaca --enable-libfreetype --enable-libgsm --enable-libilbc --enable-libmodplug --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-l
ibopus --enable-librtmp --enable-libschroedinger --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvo-aacenc --enable-libvo-amrwbenc --enable-li
bvorbis --enable-libvpx --enable-libx264 --enable-libxavs --enable-libxvid --enable-zlib
libavutil 52. 43.100 / 52. 43.100
libavcodec 55. 31.101 / 55. 31.101
libavformat 55. 16.102 / 55. 16.102
libavdevice 55. 3.100 / 55. 3.100
libavfilter 3. 84.100 / 3. 84.100
libswscale 2. 5.100 / 2. 5.100
libswresample 0. 17.103 / 0. 17.103
libpostproc 52. 3.100 / 52. 3.100
Input #0, image2, from 'C:\Library\Titling\__Resources\1.jpg':
Duration: 00:00:00.04, start: 0.000000, bitrate: N/A
Stream #0:0: Video: mjpeg, yuvj420p(pc), 1920x1080 [SAR 96:96 DAR 16:9], 25 fps, 25 tbr, 25 tbn, 25 tbc
[swscaler @ 025bec00] deprecated pixel format used, make sure you did set range correctly
[libx264 @ 025b7ce0] using SAR=4/5
[libx264 @ 025b7ce0] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX
[libx264 @ 025b7ce0] profile High, level 2.2
[libx264 @ 025b7ce0] 264 - core 135 r2345 f0c1c53 - H.264/MPEG-4 AVC codec - Copyleft 2003-2013 - http://www.videolan.org/x264.html - options: cabac=1 ref=3 deblock=1:0:0 analyse=0x3:0x113 me=hex subm
e=7 psy=1 psy_rd=1.00:0.00 mixed_ref=1 me_range=16 chroma_me=1 trellis=1 8x8dct=1 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=-2 threads=12 lookahead_threads=2 sliced_threads=0 nr=0 decimate=1
interlaced=0 bluray_compat=0 constrained_intra=0 bframes=3 b_pyramid=2 b_adapt=1 b_bias=0 direct=1 weightb=1 open_gop=0 weightp=2 keyint=250 keyint_min=1 scenecut=40 intra_refresh=0 rc_lookahead=40 rc
=abr mbtree=1 bitrate=1500 ratetol=1.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00
Output #0, mp4, to 'D:\Records\2013-10-11_115453\PublishingDirectory\Temporary_WithtoutAudio1.mp4':
Metadata:
encoder : Lavf55.16.102
Stream #0:0: Video: h264 (libx264) ([33][0][0][0] / 0x0021), yuv420p, 720x576 [SAR 4:5 DAR 1:1], q=-1--1, 1500 kb/s, 16384 tbn, 1 tbc
Stream mapping:
Stream #0:0 -> #0:0 (mjpeg -> libx264)
Press [q] to stop, [?] for help
frame= 5 fps=0.0 q=-1.0 Lsize= 64kB time=00:00:03.00 bitrate= 174.0kbits/s
video:63kB audio:0kB subtitle:0 global headers:0kB muxing overhead 1.355758%
[libx264 @ 025b7ce0] frame I:1 Avg QP: 0.00 size: 63203
[libx264 @ 025b7ce0] frame P:1 Avg QP: 0.00 size: 250
[libx264 @ 025b7ce0] frame B:3 Avg QP: 0.00 size: 64
[libx264 @ 025b7ce0] consecutive B-frames: 20.0% 0.0% 0.0% 80.0%
[libx264 @ 025b7ce0] mb I I16..4: 78.8% 4.0% 17.2%
[libx264 @ 025b7ce0] mb P I16..4: 0.0% 0.0% 0.0% P16..4: 1.2% 0.0% 0.1% 0.0% 0.0% skip:98.6%
[libx264 @ 025b7ce0] mb B I16..4: 0.0% 0.0% 0.0% B16..8: 0.9% 0.0% 0.0% direct: 0.0% skip:99.0% L0:12.8% L1:87.2% BI: 0.0%
[libx264 @ 025b7ce0] final ratefactor: -14.43
[libx264 @ 025b7ce0] 8x8 transform intra:4.0% inter:0.0%
[libx264 @ 025b7ce0] coded y,uvDC,uvAC intra: 22.8% 24.1% 24.1% inter: 0.2% 0.0% 0.0%
[libx264 @ 025b7ce0] i16 v,h,dc,p: 93% 1% 4% 2%
[libx264 @ 025b7ce0] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 26% 19% 13% 6% 6% 7% 7% 12% 4%
[libx264 @ 025b7ce0] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 23% 15% 11% 7% 7% 9% 7% 14% 6%
[libx264 @ 025b7ce0] i8c dc,h,v,p: 85% 4% 6% 5%
[libx264 @ 025b7ce0] Weighted P-Frames: Y:0.0% UV:0.0%
[libx264 @ 025b7ce0] kb/s:101.83

在这一步我有两个问题:
首先是执行期间的警告
使用了已弃用的像素格式,确保您正确设置了范围
第二个是视频在 VLC 中无法正常工作(视频为“黑色”)但它在 wmp 中工作...

然后我添加一个空的音轨:

ffmpeg -threads 8 -f lavfi -i aevalsrc=0 -i "D:\Records\2013-10-11_115453\PublishingDirectory\Temporary_WithtoutAudio1.mp4" -vcodec copy -b:v 1500k -acodec aac -map 1:0 -map 0:0 -shortest -strict experimental -y "D:\Records\2013-10-11_115453\PublishingDirectory\Temporary1.mp4"

之后,我使用复合过滤器将此视频连接到其他人。
当我连接我的视频时,我收到以下消息:

[output stream 0:1 @ 0451d3a0] 100 buffers queued in output stream 0:1, something may be wrong.


当我观看结果时,我的视频在插入图像后卡住了大约一秒钟。
也许它不相关
我不知道……

这里是我的concat命令和执行日志

D:\test>ffmpeg.exe -threads 8 -i "D:\Records\2013-10-11_115453\PublishingDirectory\Temporary0.mp4" -i "D:\Records\2013-10-11_115453\PublishingDirectory\Temporary1.mp4" -i "D:\Records\2013-10-11_115
453\PublishingDirectory\Temporary2.mp4" -filter_complex "[0:v] [0:a] [1:v] [1:a] [2:v] [2:a] concat=n=3:v=1:a=1 [v] [a] " -map "[v]" -map "[a]" -vcodec libx264 -b 1500000 -s 720:576 -y "D:\Records\
2013-10-11_115453\PublishingDirectory\EditedVideo.mp4"

..

ffmpeg version N-56297-g7ac6c63 Copyright (c) 2000-2013 the FFmpeg developers
built on Sep 15 2013 18:02:28 with gcc 4.7.3 (GCC)
configuration: --enable-gpl --enable-version3 --disable-w32threads --enable-avisynth --enable-bzlib --enable-fontconfig --enable-frei0r --enable-gnutls --enable-iconv --enable-libass --enable-libblu
ray --enable-libcaca --enable-libfreetype --enable-libgsm --enable-libilbc --enable-libmodplug --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-l
ibopus --enable-librtmp --enable-libschroedinger --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvo-aacenc --enable-libvo-amrwbenc --enable-li
bvorbis --enable-libvpx --enable-libx264 --enable-libxavs --enable-libxvid --enable-zlib
libavutil 52. 43.100 / 52. 43.100
libavcodec 55. 31.101 / 55. 31.101
libavformat 55. 16.102 / 55. 16.102
libavdevice 55. 3.100 / 55. 3.100
libavfilter 3. 84.100 / 3. 84.100
libswscale 2. 5.100 / 2. 5.100
libswresample 0. 17.103 / 0. 17.103
libpostproc 52. 3.100 / 52. 3.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'D:\Records\2013-10-11_115453\PublishingDirectory\Temporary0.mp4':
Metadata:
major_brand : isom
minor_version : 512
compatible_brands: isomiso2avc1mp41
title : Wildlife in HD
encoder : Lavf54.22.100
comment : Footage: Small World Productions, Inc; Tourism New Zealand | Producer: Gary F. Spradling | Music: Steve Ball
copyright : ┬® 2008 Microsoft Corporation
Duration: 00:00:13.70, start: 0.000000, bitrate: 1914 kb/s
Stream #0:0(eng): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 720x576 [SAR 4:5 DAR 1:1], 1778 kb/s, 29.97 fps, 29.97 tbr, 30k tbn, 59.94 tbc (default)
Metadata:
handler_name : VideoHandler
Stream #0:1(eng): Audio: aac (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 128 kb/s (default)
Metadata:
handler_name : SoundHandler
Input #1, mov,mp4,m4a,3gp,3g2,mj2, from 'D:\Records\2013-10-11_115453\PublishingDirectory\Temporary1.mp4':
Metadata:
major_brand : isom
minor_version : 512
compatible_brands: isomiso2avc1mp41
encoder : Lavf55.16.102
Duration: 00:00:05.00, start: 0.023220, bitrate: 106 kb/s
Stream #1:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 720x576 [SAR 4:5 DAR 1:1], 102 kb/s, 1 fps, 1 tbr, 16384 tbn, 2 tbc (default)
Metadata:
handler_name : VideoHandler
Stream #1:1(und): Audio: aac (mp4a / 0x6134706D), 44100 Hz, mono, fltp, 1 kb/s (default)
Metadata:
handler_name : SoundHandler
Input #2, mov,mp4,m4a,3gp,3g2,mj2, from 'D:\Records\2013-10-11_115453\PublishingDirectory\Temporary2.mp4':
Metadata:
major_brand : isom
minor_version : 512
compatible_brands: isomiso2avc1mp41
title : Wildlife in HD
encoder : Lavf54.22.100
comment : Footage: Small World Productions, Inc; Tourism New Zealand | Producer: Gary F. Spradling | Music: Steve Ball
copyright : ┬® 2008 Microsoft Corporation
Duration: 00:00:16.47, start: 0.000000, bitrate: 2761 kb/s
Stream #2:0(eng): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 720x576 [SAR 4:5 DAR 1:1], 2625 kb/s, 29.97 fps, 29.97 tbr, 30k tbn, 59.94 tbc (default)
Metadata:
handler_name : VideoHandler
Stream #2:1(eng): Audio: aac (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 128 kb/s (default)
Metadata:
handler_name : SoundHandler
Please use -b:a or -b:v, -b is ambiguous
[libx264 @ 04c748e0] using SAR=4/5
[libx264 @ 04c748e0] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX
[libx264 @ 04c748e0] profile High, level 3.1
[libx264 @ 04c748e0] 264 - core 135 r2345 f0c1c53 - H.264/MPEG-4 AVC codec - Copyleft 2003-2013 - http://www.videolan.org/x264.html - options: cabac=1 ref=3 deblock=1:0:0 analyse=0x3:0x113 me=hex subm
e=7 psy=1 psy_rd=1.00:0.00 mixed_ref=1 me_range=16 chroma_me=1 trellis=1 8x8dct=1 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=-2 threads=12 lookahead_threads=2 sliced_threads=0 nr=0 decimate=1
interlaced=0 bluray_compat=0 constrained_intra=0 bframes=3 b_pyramid=2 b_adapt=1 b_bias=0 direct=1 weightb=1 open_gop=0 weightp=2 keyint=250 keyint_min=25 scenecut=40 intra_refresh=0 rc_lookahead=40 r
c=abr mbtree=1 bitrate=1500 ratetol=1.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00
Output #0, mp4, to 'D:\Records\2013-10-11_115453\PublishingDirectory\EditedVideo.mp4':
Metadata:
major_brand : isom
minor_version : 512
compatible_brands: isomiso2avc1mp41
title : Wildlife in HD
copyright : ┬® 2008 Microsoft Corporation
comment : Footage: Small World Productions, Inc; Tourism New Zealand | Producer: Gary F. Spradling | Music: Steve Ball
encoder : Lavf55.16.102
Stream #0:0: Video: h264 (libx264) ([33][0][0][0] / 0x0021), yuv420p, 720x576 [SAR 4:5 DAR 1:1], q=-1--1, 1500 kb/s, 30k tbn, 29.97 tbc
Stream #0:1: Audio: aac (libvo_aacenc) ([64][0][0][0] / 0x0040), 44100 Hz, stereo, s16, 128 kb/s
Stream mapping:
Stream #0:0 (h264) -> concat:in0:v0
Stream #0:1 (aac) -> concat:in0:a0
Stream #1:0 (h264) -> concat:in1:v0
Stream #1:1 (aac) -> concat:in1:a0
Stream #2:0 (h264) -> concat:in2:v0
Stream #2:1 (aac) -> concat:in2:a0
concat:out:v0 -> Stream #0:0 (libx264)
concat:out:a0 -> Stream #0:1 (libvo_aacenc)
Press [q] to stop, [?] for help
[output stream 0:1 @ 0451d3a0] 100 buffers queued in output stream 0:1, something may be wrong.
frame= 1054 fps=101 q=-1.0 Lsize= 7676kB time=00:00:35.23 bitrate=1784.7kbits/s dup=146 drop=0
video:7083kB audio:552kB subtitle:0 global headers:0kB muxing overhead 0.543084%
[libx264 @ 04c748e0] frame I:10 Avg QP:18.41 size: 52713
[libx264 @ 04c748e0] frame P:456 Avg QP:24.04 size: 11772
[libx264 @ 04c748e0] frame B:588 Avg QP:26.20 size: 2308
[libx264 @ 04c748e0] consecutive B-frames: 2.8% 67.9% 1.1% 28.1%
[libx264 @ 04c748e0] mb I I16..4: 23.1% 52.7% 24.2%
[libx264 @ 04c748e0] mb P I16..4: 0.6% 4.3% 1.0% P16..4: 35.8% 18.5% 11.9% 0.0% 0.0% skip:27.8%
[libx264 @ 04c748e0] mb B I16..4: 0.1% 0.8% 0.2% B16..8: 34.2% 5.0% 1.3% direct: 1.3% skip:57.0% L0:37.3% L1:53.3% BI: 9.3%
[libx264 @ 04c748e0] final ratefactor: 23.46
[libx264 @ 04c748e0] 8x8 transform intra:67.7% inter:60.0%
[libx264 @ 04c748e0] coded y,uvDC,uvAC intra: 67.1% 69.5% 30.5% inter: 17.0% 11.0% 0.4%
[libx264 @ 04c748e0] i16 v,h,dc,p: 50% 20% 6% 24%
[libx264 @ 04c748e0] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 18% 16% 18% 6% 8% 10% 7% 9% 8%
[libx264 @ 04c748e0] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 19% 16% 14% 7% 10% 12% 8% 8% 7%
[libx264 @ 04c748e0] i8c dc,h,v,p: 53% 20% 19% 8%
[libx264 @ 04c748e0] Weighted P-Frames: Y:0.4% UV:0.0%
[libx264 @ 04c748e0] ref P L0: 63.9% 19.2% 11.1% 5.7% 0.0%
[libx264 @ 04c748e0] ref B L0: 90.4% 9.0% 0.6%
[libx264 @ 04c748e0] ref B L1: 97.8% 2.2%
[libx264 @ 04c748e0] kb/s:1649.69

那么如何修复我的“图片”视频?
它会解决视频串联后的卡顿问题吗?
如果不是,我该如何解决?

提前致谢!

最佳答案

我找到了解决方案!

由于视频帧率,Vlc 无法成功读取它。

为了快速生成一个小文件,我将帧速率设置为 1 (-r 1),但 VLC 不喜欢它。 使用 -r 25 工作正常。

此外,concat 过程中的卡顿也是由于此帧率造成的。

我怀疑 ffmpeg 在尝试连接我的两个视频时使用我图片的帧速率(每秒 1 帧)直到帧的“当前周期”结束(在我的情况下为 25 帧)。

关于video - ffmpeg : Generate video from picture,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19383664/

相关文章:

java - 视频播放询问安全定时器重置

delphi - delphi 2010 的视频组件

video - FFMPEG 图像到视频缩放起始位置

macos - 使用 ffmpeg 命令查找和转换

ffmpeg - ffmpeg中的max_delay和muxdelay有什么区别

ios - 如何获取使用 MPMediaPickerController 选择的文件的路径?

javascript - 链接或按钮设置变量,然后调用脚本

ios - 视频作为 openGLES 的纹理

video - FFMPEG YouTube 直播太快了

ffmpeg -vcopy 到没有文件名的文件夹