[FFmpeg-user] Movie Filter No Longer Working with PNG Image

Doug Anarino lists6mns86k6 at syntropo.com
Wed Oct 8 09:45:08 CEST 2014


Greetings,

I seem to be having trouble with a build from 9/28 when trying to use the movie filter with a png image:

ffmpeg -filter_complex 'movie=in.png' out.png

This same command is working correctly in a different build from 7/2 (on OSX) and this more simplified syntax works correctly too, so it doesn't appear to be a problem with the files:

ffmpeg -i in.png out.png

And jpeg files work perfectly - the issue is just with png. Below is debug output from running these two commands on the newer build, followed by corresponding output from just the first command on the older one (which is actually producing the correct file despite the claim of '0 frames successfully decoded'). 

The only difference I notice is the use of png_pipe to decode the input on the newer build, which doesn't seem to be an option on the older one. Is there perhaps some way to get the newer build to not use this decoder? Or maybe some new syntax that's missing? Any help would be greatly valued, as the filter_complex syntax is extremely convenient for my app to utilize. 

Thanks for your attention,
doug


[OSX LINUX ~]$ ffmpeg -v debug -filter_complex 'movie=in.png' out.png
ffmpeg version N-66356-g9950073 Copyright (c) 2000-2014 the FFmpeg developers
  built on Sep 28 2014 15:13:16 with gcc 4.8.2 (GCC) 20140120 (Red Hat 4.8.2-16)
  configuration: --extra-cflags=-I/usr/local/include/openjpeg --enable-libopenjpeg --enable-version3 --enable-gpl --enable-pthreads --enable-zlib --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libtheora --enable-libspeex --enable-libx264 --enable-postproc --enable-libvorbis --enable-libxvid --enable-libvpx --enable-frei0r --enable-libfreetype --enable-libfontconfig --enable-libfribidi
  libavutil      54.  7.100 / 54.  7.100
  libavcodec     56.  1.101 / 56.  1.101
  libavformat    56.  4.102 / 56.  4.102
  libavdevice    56.  0.100 / 56.  0.100
  libavfilter     5.  1.101 /  5.  1.101
  libswscale      3.  0.100 /  3.  0.100
  libswresample   1.  1.100 /  1.  1.100
  libpostproc    53.  0.100 / 53.  0.100
Splitting the commandline.
Reading option '-v' ... matched as option 'v' (set logging level) with argument 'debug'.
Reading option '-filter_complex' ... matched as option 'filter_complex' (create a complex filtergraph) with argument 'movie=in.png'.
Reading option 'out.png' ... matched as output file.
Finished splitting the commandline.
Parsing a group of options: global .
Applying option v (set logging level) with argument debug.
Applying option filter_complex (create a complex filtergraph) with argument movie=in.png.
Successfully parsed a group of options.
Parsing a group of options: output file out.png.
Successfully parsed a group of options.
Opening an output file: out.png.
detected 8 logical cores
[Parsed_movie_0 @ 0x22b24c0] Setting 'filename' to value 'in.png'
[png_pipe @ 0x22b2720] Format png_pipe probed with size=2048 and score=99
[png_pipe @ 0x22b2720] Before avformat_find_stream_info() pos: 0 bytes read:6133 seeks:0
[png_pipe @ 0x22b2720] After avformat_find_stream_info() pos: 6133 bytes read:6133 seeks:0 frames:1
[Parsed_movie_0 @ 0x22b24c0] seek_point:0 format_name:(null) file_name:in.png stream_index:-1
[format @ 0x22cd0e0] compat: called with args=[rgb24|rgba|rgb48be|rgba64be|pal8|gray|ya8|gray16be|monob]
[format @ 0x22cd0e0] Setting 'pix_fmts' to value 'rgb24|rgba|rgb48be|rgba64be|pal8|gray|ya8|gray16be|monob'
Successfully opened the file.
[AVFilterGraph @ 0x22b16c0] query_formats: 3 queried, 2 merged, 0 already done, 0 delayed
Output #0, image2, to 'out.png':
  Metadata:
    encoder         : Lavf56.4.102
    Stream #0:0, 0, 1/25: Video: png, pal8, 1600x1200 [SAR 1:1 DAR 4:3], 1/25, q=2-31, 200 kb/s, 25 fps, 25 tbn, 25 tbc (default)
    Metadata:
      encoder         : Lavc56.1.101 png
Stream mapping:
  movie -> Stream #0:0 (png)
Press [q] to stop, [?] for help
Error while filtering.
frame=    0 fps=0.0 q=0.0 Lsize=N/A time=00:00:00.00 bitrate=N/A    
video:0kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: unknown
Output file #0 (out.png):
  Output stream #0:0 (video): 0 frames encoded; 0 packets muxed (0 bytes); 
  Total: 0 packets (0 bytes) muxed
Output file is empty, nothing was encoded (check -ss / -t / -frames parameters if used)
0 frames successfully decoded, 0 decoding errors
[AVIOContext @ 0x22bad80] Statistics: 6133 bytes read, 0 seeks


[AWS LINUX ~]$ ffmpeg -v debug -i in.png out.png
ffmpeg version N-66356-g9950073 Copyright (c) 2000-2014 the FFmpeg developers
  built on Sep 28 2014 15:13:16 with gcc 4.8.2 (GCC) 20140120 (Red Hat 4.8.2-16)
  configuration: --extra-cflags=-I/usr/local/include/openjpeg --enable-libopenjpeg --enable-version3 --enable-gpl --enable-pthreads --enable-zlib --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libtheora --enable-libspeex --enable-libx264 --enable-postproc --enable-libvorbis --enable-libxvid --enable-libvpx --enable-frei0r --enable-libfreetype --enable-libfontconfig --enable-libfribidi
  libavutil      54.  7.100 / 54.  7.100
  libavcodec     56.  1.101 / 56.  1.101
  libavformat    56.  4.102 / 56.  4.102
  libavdevice    56.  0.100 / 56.  0.100
  libavfilter     5.  1.101 /  5.  1.101
  libswscale      3.  0.100 /  3.  0.100
  libswresample   1.  1.100 /  1.  1.100
  libpostproc    53.  0.100 / 53.  0.100
Splitting the commandline.
Reading option '-v' ... matched as option 'v' (set logging level) with argument 'debug'.
Reading option '-i' ... matched as input file with argument 'in.png'.
Reading option 'out.png' ... matched as output file.
Finished splitting the commandline.
Parsing a group of options: global .
Applying option v (set logging level) with argument debug.
Successfully parsed a group of options.
Parsing a group of options: input file in.png.
Successfully parsed a group of options.
Opening an input file: in.png.
[png_pipe @ 0x2786c20] Format png_pipe probed with size=2048 and score=99
[png_pipe @ 0x2786c20] Before avformat_find_stream_info() pos: 0 bytes read:6133 seeks:0
[png_pipe @ 0x2786c20] After avformat_find_stream_info() pos: 6133 bytes read:6133 seeks:0 frames:1
Input #0, png_pipe, from 'in.png':
  Duration: N/A, bitrate: N/A
    Stream #0:0, 1, 1/25: Video: png, pal8, 1600x1200, 1/25, 25 tbr, 25 tbn, 25 tbc
Successfully opened the file.
Parsing a group of options: output file out.png.
Successfully parsed a group of options.
Opening an output file: out.png.
Successfully opened the file.
detected 8 logical cores
[graph 0 input from stream 0:0 @ 0x2788800] Setting 'video_size' to value '1600x1200'
[graph 0 input from stream 0:0 @ 0x2788800] Setting 'pix_fmt' to value '11'
[graph 0 input from stream 0:0 @ 0x2788800] Setting 'time_base' to value '1/25'
[graph 0 input from stream 0:0 @ 0x2788800] Setting 'pixel_aspect' to value '0/1'
[graph 0 input from stream 0:0 @ 0x2788800] Setting 'sws_param' to value 'flags=2'
[graph 0 input from stream 0:0 @ 0x2788800] Setting 'frame_rate' to value '25/1'
[graph 0 input from stream 0:0 @ 0x2788800] w:1600 h:1200 pixfmt:pal8 tb:1/25 fr:25/1 sar:0/1 sws_param:flags=2
[format @ 0x2786680] compat: called with args=[rgb24|rgba|rgb48be|rgba64be|pal8|gray|ya8|gray16be|monob]
[format @ 0x2786680] Setting 'pix_fmts' to value 'rgb24|rgba|rgb48be|rgba64be|pal8|gray|ya8|gray16be|monob'
[AVFilterGraph @ 0x277e8a0] query_formats: 4 queried, 3 merged, 0 already done, 0 delayed
Output #0, image2, to 'out.png':
  Metadata:
    encoder         : Lavf56.4.102
    Stream #0:0, 0, 1/25: Video: png, pal8, 1600x1200, 1/25, q=2-31, 200 kb/s, 25 fps, 25 tbn, 25 tbc
    Metadata:
      encoder         : Lavc56.1.101 png
Stream mapping:
  Stream #0:0 -> #0:0 (png (native) -> png (native))
Press [q] to stop, [?] for help
in.png: Input/output error
    Last message repeated 1 times
[output stream 0:0 @ 0x277dd80] EOF on sink link output stream 0:0:default.
No more output streams to write to, finishing.
[AVIOContext @ 0x279d9a0] Statistics: 0 seeks, 1 writeouts
frame=    1 fps=0.0 q=0.0 Lsize=N/A time=00:00:00.04 bitrate=N/A    
video:6kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: unknown
Input file #0 (in.png):
  Input stream #0:0 (video): 1 packets read (6133 bytes); 1 frames decoded; 
  Total: 1 packets (6133 bytes) demuxed
Output file #0 (out.png):
  Output stream #0:0 (video): 1 frames encoded; 1 packets muxed (6486 bytes); 
  Total: 1 packets (6486 bytes) muxed
2 frames successfully decoded, 0 decoding errors
[AVIOContext @ 0x27861e0] Statistics: 6133 bytes read, 0 seeks


[OSX LINUX ~]$ ffmpeg -v debug -filter_complex 'movie=in.png' out.png
ffmpeg version 2.2.4 Copyright (c) 2000-2014 the FFmpeg developers
  built on Jul  2 2014 13:07:25 with Apple LLVM version 5.1 (clang-503.0.40) (based on LLVM 3.4svn)
  configuration: --prefix=/usr/local/Cellar/ffmpeg/2.2.4 --enable-shared --enable-pthreads --enable-gpl --enable-version3 --enable-nonfree --enable-hardcoded-tables --enable-avresample --enable-vda --cc=clang --host-cflags= --host-ldflags= --enable-libx264 --enable-libfaac --enable-libmp3lame --enable-libxvid --enable-libfreetype --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libspeex --enable-libfdk-aac --enable-openssl --enable-frei0r --enable-libvidstab --enable-libopenjpeg --extra-cflags='-I/usr/local/Cellar/openjpeg/1.5.1_1/include/openjpeg-1.5 '
  libavutil      52. 66.100 / 52. 66.100
  libavcodec     55. 52.102 / 55. 52.102
  libavformat    55. 33.100 / 55. 33.100
  libavdevice    55. 10.100 / 55. 10.100
  libavfilter     4.  2.100 /  4.  2.100
  libavresample   1.  2.  0 /  1.  2.  0
  libswscale      2.  5.102 /  2.  5.102
  libswresample   0. 18.100 /  0. 18.100
  libpostproc    52.  3.100 / 52.  3.100
Splitting the commandline.
Reading option '-v' ... matched as option 'v' (set logging level) with argument 'debug'.
Reading option '-filter_complex' ... matched as option 'filter_complex' (create a complex filtergraph) with argument 'movie=in.png'.
Reading option 'out.png' ... matched as output file.
Finished splitting the commandline.
Parsing a group of options: global .
Applying option v (set logging level) with argument debug.
Applying option filter_complex (create a complex filtergraph) with argument movie=in.png.
Successfully parsed a group of options.
Parsing a group of options: output file out.png.
Successfully parsed a group of options.
Opening an output file: out.png.
detected 2 logical cores
[Parsed_movie_0 @ 0x7fc193c1b700] Setting 'filename' to value 'in.png'
[AVIOContext @ 0x7fc193c1c840] Statistics: 4401 bytes read, 0 seeks
[Parsed_movie_0 @ 0x7fc193c1b700] seek_point:0 format_name:(null) file_name:in.png stream_index:-1
[format @ 0x7fc193c1e580] compat: called with args=[rgb24|rgba|rgb48be|rgba64be|pal8|gray|gray8a|gray16be|monob]
[format @ 0x7fc193c1e580] Setting 'pix_fmts' to value 'rgb24|rgba|rgb48be|rgba64be|pal8|gray|gray8a|gray16be|monob'
Successfully opened the file.
[AVFilterGraph @ 0x7fc193d00300] query_formats: 3 queried, 2 merged, 0 already done, 0 delayed
Output #0, image2, to 'out.png':
  Metadata:
    encoder         : Lavf55.33.100
    Stream #0:0, 0, 1/90000: Video: png, pal8, 1600x900 [SAR 1:1 DAR 16:9], 1/25, q=2-31, 200 kb/s, 90k tbn, 25 tbc (default)
Stream mapping:
  movie -> Stream #0:0 (png)
Press [q] to stop, [?] for help
[output stream 0:0 @ 0x7fc193c1e320] EOF on sink link output stream 0:0:default.
No more output streams to write to, finishing.
[AVIOContext @ 0x7fc193d00ea0] Statistics: 0 seeks, 1 writeouts
frame=    1 fps=0.0 q=0.0 Lsize=N/A time=00:00:00.04 bitrate=N/A    
video:5kB audio:0kB subtitle:0 data:0 global headers:0kB muxing overhead -100.422592%
0 frames successfully decoded, 0 decoding errors


More information about the ffmpeg-user mailing list