Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

FFmpeg converting image sequence to video results in blank video [closed]

Tags:

video

ffmpeg

I've got a series of 361 .png files that I'm trying to convert to video, and for whatever reason the resulting video is just black. Here is the FFmpeg code I'm using:

ffmpeg -f image2 -i "FeatureTour_%05d.png" -r 30 -vcodec libx264 -b:v 9600k "FeatureTour.mp4"

The files are formatted correctly (FeatureTour_00001.png) and no errors are thrown. It just results in a 160kb mp4 files that's black.

Any idea what I'm doing wrong?

EDIT

Here is my output after using the above code:

ffmpeg version N-46206-g0e4d34e Copyright (c) 2000-2012 the FFmpeg developers
  built on Oct 30 2012 23:07:44 with llvm-gcc 4.2.1 (LLVM build 2336.11.00)
  configuration: --enable-gpl --enable-version3 --enable-nonfree --enable-postproc --enable-libaacplus --enable-libass --enable-libcelt --enable-libfaac --enable-libfdk-aac --enable-libfreetype --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-openssl --enable-libopus --enable-libschroedinger --enable-libspeex --enable-libtheora --enable-libvo-aacenc --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libxvid --prefix=/usr/local
  libavutil      52.  1.100 / 52.  1.100
  libavcodec     54. 70.100 / 54. 70.100
  libavformat    54. 35.100 / 54. 35.100
  libavdevice    54.  3.100 / 54.  3.100
  libavfilter     3. 20.113 /  3. 20.113
  libswscale      2.  1.101 /  2.  1.101
  libswresample   0. 16.100 /  0. 16.100
  libpostproc    52.  1.100 / 52.  1.100
[image2 @ 0x7fa68381e200] max_analyze_duration 5000000 reached at 5000000
Input #0, image2, from 'FeatureTour_%05d.png':
  Duration: 00:00:14.44, start: 0.000000, bitrate: N/A
    Stream #0:0: Video: png, rgb24, 114x151 [SAR 2835:2835 DAR 114:151], 25 fps, 25 tbr, 25 tbn, 25 tbc
[libx264 @ 0x7fa683826c00] using SAR=1/1
[libx264 @ 0x7fa683826c00] using cpu capabilities: MMX2 SSE2Fast SSSE3 FastShuffle SSE4.2 AVX
[libx264 @ 0x7fa683826c00] profile High 4:4:4 Predictive, level 3.0, 4:4:4 8-bit
[libx264 @ 0x7fa683826c00] 264 - core 125 - H.264/MPEG-4 AVC codec - Copyleft 2003-2012 - http://www.videolan.org/x264.html - options: cabac=1 ref=3 deblock=1:0:0 analyse=0x3:0x113 me=hex subme=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=4 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 rc=abr mbtree=1 bitrate=9600 ratetol=1.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00
Output #0, mp4, to 'FeatureTour.mp4':
  Metadata:
    encoder         : Lavf54.35.100
    Stream #0:0: Video: h264 ([33][0][0][0] / 0x0021), yuv444p, 114x151 [SAR 1:1 DAR 114:151], q=-1--1, 9600 kb/s, 15360 tbn, 30 tbc
Stream mapping:
  Stream #0:0 -> #0:0 (png -> libx264)
Press [q] to stop, [?] for help
frame=  432 fps=0.0 q=-2.0 Lsize=     152kB time=00:00:14.33 bitrate=  86.9kbits/s dup=71 drop=0    
video:146kB audio:0kB subtitle:0 global headers:0kB muxing overhead 3.905020%
[libx264 @ 0x7fa683826c00] frame I:3     Avg QP: 0.06  size:  8557
[libx264 @ 0x7fa683826c00] frame P:135   Avg QP: 0.10  size:   653
[libx264 @ 0x7fa683826c00] frame B:294   Avg QP: 0.43  size:   120
[libx264 @ 0x7fa683826c00] consecutive B-frames:  8.8%  0.9%  1.4% 88.9%
[libx264 @ 0x7fa683826c00] mb I  I16..4: 30.0%  0.4% 69.6%
[libx264 @ 0x7fa683826c00] mb P  I16..4:  2.1%  0.0%  1.9%  P16..4:  7.5%  1.2%  0.8%  0.0%  0.0%    skip:86.5%
[libx264 @ 0x7fa683826c00] mb B  I16..4:  0.2%  0.0%  0.1%  B16..8:  4.4%  0.3%  0.2%  direct: 0.9%  skip:93.8%  L0:46.5% L1:48.9% BI: 4.5%
[libx264 @ 0x7fa683826c00] final ratefactor: -45.15
[libx264 @ 0x7fa683826c00] 8x8 transform intra:0.7% inter:19.3%
[libx264 @ 0x7fa683826c00] coded y,u,v intra: 44.4% 32.1% 31.5% inter: 2.3% 1.6% 1.4%
[libx264 @ 0x7fa683826c00] i16 v,h,dc,p: 25% 75%  0%  0%
[libx264 @ 0x7fa683826c00] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 30% 40% 10%  0%  5%  0% 10%  0%  5%
[libx264 @ 0x7fa683826c00] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 16% 71%  5%  1%  1%  1%  2%  1%  2%
[libx264 @ 0x7fa683826c00] Weighted P-Frames: Y:0.0% UV:0.0%
[libx264 @ 0x7fa683826c00] ref P L0: 88.0%  3.9%  5.0%  3.1%
[libx264 @ 0x7fa683826c00] ref B L0: 85.4% 12.4%  2.1%
[libx264 @ 0x7fa683826c00] ref B L1: 98.1%  1.9%
[libx264 @ 0x7fa683826c00] kb/s:82.86
like image 614
Brandon Durham Avatar asked Oct 31 '12 17:10

Brandon Durham


People also ask

How to create a video from a sequence of images with ffmpeg?

To create a video from a sequence of images with FFmpeg, you need to specify the input images and output file. There are several ways you can specify the input images and we'll look at examples of some of these.

How do I know what file format FFmpeg should use?

FFmpeg format specifiers If you have a series of images that are sequentially named, e.g. happy1.jpg, happy2.jpg, happy3.jpg, happy4.jpg, etc. you can use ffmpeg format specifiers to indicate the images that FFmpeg should use: $ ffmpeg -framerate 1 -i happy%d.jpg -c:v libx264 -r 30 output.mp4

How do I convert a FFmpeg file to H264?

See the ffmpeg filters documentation for more information. -i MP3FILE.mp3 The audio filename -acodec copy Copies the audio from the input stream to the output stream If the video has already been compressed the following can be used to change the codmpression to h264:

How to convert a video to MJPEG using FFmpeg?

If you want to encode in mjpeg with highest quality command line is: ffmpeg -r 25 -start_number 1 -f image2 -i "img_%04d.jpg" -vcodec mjpeg -qscale 1 video.avi And the beauty of the thing is that you can convert the video back to a series a pictures: ffmpeg -i video.avi "img_series_%04d.png" ffmpeg -i video.avi "img_series_%04d.jpg"


1 Answers

Add -vf format=yuv420p (or the alias -pix_fmt yuv420p) as an output option

ffmpeg -framerate 30 -i input_%05d.png -vf format=yuv420p output.mp4

Otherwise ffmpeg will attempt to preserve as much color information as it can, but most players can only decode YUV 4:2:0.

like image 183
llogan Avatar answered Oct 21 '22 22:10

llogan