Opened 12 years ago
Closed 12 years ago
#3977 closed defect (fixed)
PNG / watermark files do not work with -vf filter
| Reported by: | Mark El-Wakil | Owned by: | |
|---|---|---|---|
| Priority: | important | Component: | avformat |
| Version: | 2.4.1 | Keywords: | image2 regression |
| Cc: | Blocked By: | ||
| Blocking: | Reproduced by developer: | yes | |
| Analyzed by developer: | no |
Description
Hello,
Summary of bug:
It appears that newer versions of FFmpeg do not allow PNG files to be specified within the -vf (video filter command).
How to reproduce:
ffmpeg -y -i big_buck_bunny_1080p_h264.mov \
-b:v 3000k -vcodec h264 -t 30 -acodec aac -strict experimental -ab 128k \
-vf "movie='sample-128.png' [wm]; [in] [wm] overlay=W-w-10:H-h-10 [out]" \
"outtest.mp4"
I was able to reproduce this with:
FFmpeg 2.4
FFmpeg 2.4.1
ffmpeg version N-40926-g303fc9b
The exact same command works when replacing the PNG file with a JPEG file.
Attachments (3)
Change History (16)
by , 12 years ago
| Attachment: | ffmpeg-20140925-192125.log added |
|---|
comment:2 by , 12 years ago
Attached are two PNG files. I pulled two from online - in the event that the original PNG file I was trying to do this on was corrupt in some way.
The mov file is from Big Buck Bunny, but I've had the issue with other source files as well.
Please let me know if anything else is needed on your end.
comment:3 by , 12 years ago
| Keywords: | png removed |
|---|---|
| Resolution: | → worksforme |
| Status: | new → closed |
Works fine here, what is the problem with the output file?
$ ffmpeg -i BigBuckBunny_640x360.m4v -vf movie=sample-128.png[o],[in][o]overlay -qscale 2 -strict -2 -vcodec mpeg4 -acodec aac out.mov
ffmpeg version N-66454-ge113692 Copyright (c) 2000-2014 the FFmpeg developers
built on Sep 25 2014 19:02:01 with gcc 4.7 (SUSE Linux)
configuration: --enable-gpl
libavutil 54. 7.101 / 54. 7.101
libavcodec 56. 1.101 / 56. 1.101
libavformat 56. 5.100 / 56. 5.100
libavdevice 56. 1.100 / 56. 1.100
libavfilter 5. 1.102 / 5. 1.102
libswscale 3. 1.100 / 3. 1.100
libswresample 1. 1.100 / 1. 1.100
libpostproc 53. 1.100 / 53. 1.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'BigBuckBunny_640x360.m4v':
Metadata:
major_brand : M4V
minor_version : 1
compatible_brands: M4V M4A mp42isom
creation_time : 2008-06-03 05:23:28
copyright : © 2008 Blender Foundation | www.bigbuckbunny.org
title : Big Buck Bunny
artist : Peach Open Movie Team
composer : Sacha Goedegebure / Ton Roosendaal
date : 2008
Duration: 00:09:56.46, start: 0.000000, bitrate: 1626 kb/s
Stream #0:0(eng): Audio: aac (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 127 kb/s (default)
Metadata:
creation_time : 2008-06-03 05:23:28
handler_name : Apple Sound Media Handler
Stream #0:1(eng): Video: h264 (Constrained Baseline) (avc1 / 0x31637661), yuv420p(tv, smpte170m), 640x360, 1495 kb/s, 24 fps, 24 tbr, 2400 tbn, 4800 tbc (default)
Metadata:
creation_time : 2008-06-03 05:23:28
handler_name : Apple Video Media Handler
Please use -q:a or -q:v, -qscale is ambiguous
Output #0, mov, to 'out.mov':
Metadata:
major_brand : M4V
minor_version : 1
compatible_brands: M4V M4A mp42isom
date : 2008
copyright : © 2008 Blender Foundation | www.bigbuckbunny.org
title : Big Buck Bunny
artist : Peach Open Movie Team
composer : Sacha Goedegebure / Ton Roosendaal
encoder : Lavf56.5.100
Stream #0:0(eng): Video: mpeg4 (mp4v / 0x7634706D), yuv420p, 640x360, q=2-31, 200 kb/s, 24 fps, 12288 tbn, 24 tbc (default)
Metadata:
creation_time : 2008-06-03 05:23:28
handler_name : Apple Video Media Handler
encoder : Lavc56.1.101 mpeg4
Stream #0:1(eng): Audio: aac (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 128 kb/s (default)
Metadata:
creation_time : 2008-06-03 05:23:28
handler_name : Apple Sound Media Handler
encoder : Lavc56.1.101 aac
Stream mapping:
Stream #0:1 -> #0:0 (h264 (native) -> mpeg4 (native))
Stream #0:0 -> #0:1 (aac (native) -> aac (native))
Press [q] to stop, [?] for help
frame=14316 fps=644 q=2.0 Lsize= 204186kB time=00:09:56.50 bitrate=2804.2kbits/s
video:194504kB audio:9339kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.168398%
comment:4 by , 12 years ago
I went ahead and downloaded the same version of the big buck bunny file that you're using and ran the same command. It looks like out.mov is 22758 bytes. There's no encode processing: the error seems to prevent any sort of encoding.
I'm using a static versions of FFmpeg built here (if that helps any):
http://johnvansickle.com/ffmpeg/
http://johnvansickle.com/ffmpeg/builds/ffmpeg-git-20140925-64bit-static.tar.xz
$ ffmpeg -i BigBuckBunny_640x360.m4v -vf movie=sample-128.png[o],[in][o]overlay -qscale 2 -strict -2 -vcodec mpeg4 -acodec aac out.mov
ffmpeg version N-40926-g303fc9b- http://johnvansickle.com/ffmpeg/ Copyright (c) 2000-2014 the FFmpeg developers
built on Sep 25 2014 01:22:09 with gcc 4.8 (Debian 4.8.3-11)
configuration: --enable-gpl --enable-version3 --disable-shared --disable-debug --enable-runtime-cpudetect --enable-libmp3lame --enable-libx264 --enable-libx265 --enable-libwebp --enable-libspeex --enable-libvorbis --enable-libvpx --enable-libfreetype --enable-fontconfig --enable-libxvid --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libtheora --enable-libvo-aacenc --enable-libvo-amrwbenc --enable-gray --enable-libopenjpeg --enable-libopus --disable-ffserver --enable-libass --enable-gnutls --cc=gcc-4.8
libavutil 54. 7.101 / 54. 7.101
libavcodec 56. 1.101 / 56. 1.101
libavformat 56. 5.100 / 56. 5.100
libavdevice 56. 1.100 / 56. 1.100
libavfilter 5. 1.102 / 5. 1.102
libswscale 3. 1.100 / 3. 1.100
libswresample 1. 1.100 / 1. 1.100
libpostproc 53. 1.100 / 53. 1.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'BigBuckBunny_640x360.m4v':
Metadata:
major_brand : M4V
minor_version : 1
compatible_brands: M4V M4A mp42isom
creation_time : 2008-06-03 05:23:28
copyright : © 2008 Blender Foundation | www.bigbuckbunny.org
title : Big Buck Bunny
artist : Peach Open Movie Team
composer : Sacha Goedegebure / Ton Roosendaal
date : 2008
Duration: 00:09:56.46, start: 0.000000, bitrate: 1626 kb/s
Stream #0:0(eng): Audio: aac (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 127 kb/s (default)
Metadata:
creation_time : 2008-06-03 05:23:28
handler_name : Apple Sound Media Handler
Stream #0:1(eng): Video: h264 (Constrained Baseline) (avc1 / 0x31637661), yuv420p(tv, smpte170m), 640x360, 1495 kb/s, 24 fps, 24 tbr, 2400 tbn, 4800 tbc (default)
Metadata:
creation_time : 2008-06-03 05:23:28
handler_name : Apple Video Media Handler
Please use -q:a or -q:v, -qscale is ambiguous
Output #0, mov, to 'out.mov':
Metadata:
major_brand : M4V
minor_version : 1
compatible_brands: M4V M4A mp42isom
date : 2008
copyright : © 2008 Blender Foundation | www.bigbuckbunny.org
title : Big Buck Bunny
artist : Peach Open Movie Team
composer : Sacha Goedegebure / Ton Roosendaal
encoder : Lavf56.5.100
Stream #0:0(eng): Video: mpeg4 (mp4v / 0x7634706D), yuv420p, 640x360, q=2-31, 200 kb/s, 24 fps, 12288 tbn, 24 tbc (default)
Metadata:
creation_time : 2008-06-03 05:23:28
handler_name : Apple Video Media Handler
encoder : Lavc56.1.101 mpeg4
Stream #0:1(eng): Audio: aac (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 128 kb/s (default)
Metadata:
creation_time : 2008-06-03 05:23:28
handler_name : Apple Sound Media Handler
encoder : Lavc56.1.101 aac
Stream mapping:
Stream #0:1 -> #0:0 (h264 (native) -> mpeg4 (native))
Stream #0:0 -> #0:1 (aac (native) -> aac (native))
Press [q] to stop, [?] for help
Error while filtering.
frame= 1 fps=0.0 q=2.0 Lsize= 22kB time=00:00:00.51 bitrate= 356.4kbits/s
video:10kB audio:11kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 7.893614%
comment:5 by , 12 years ago
I fear that you will have to compile yourself (remember that you don't have to install FFmpeg to test) or report the problem to the site where you downloaded your binary.
comment:6 by , 12 years ago
Unfortunately, this looks to be an issue that is not limited to the johnvansickle builds.
# ffmpeg -y -i BigBuckBunny_640x360.m4v -vf movie=sample-128.png[o],[in][o]overlay -qscale 2 -strict -2 -vcodec mpeg4 -acodec aac out.mov
ffmpeg version 2.4.1 Copyright (c) 2000-2014 the FFmpeg developers
built on Sep 25 2014 22:13:52 with gcc 4.8 (Ubuntu 4.8.2-19ubuntu1)
configuration: --enable-gpl --enable-postproc --enable-swscale --enable-pthreads --enable-x11grab --enable-libdc1394 --enable-libfaac --enable-libgsm --enable-libvpx --enable-libmp3lame --enable-libtheora --enable-libvorbis --enable-libx264 --enable-libxvid --enable-nonfree --enable-version3 --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libfreetype --extra-libs=-ldl
libavutil 54. 7.100 / 54. 7.100
libavcodec 56. 1.100 / 56. 1.100
libavformat 56. 4.101 / 56. 4.101
libavdevice 56. 0.100 / 56. 0.100
libavfilter 5. 1.100 / 5. 1.100
libswscale 3. 0.100 / 3. 0.100
libswresample 1. 1.100 / 1. 1.100
libpostproc 53. 0.100 / 53. 0.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'BigBuckBunny_640x360.m4v':
Metadata:
major_brand : M4V
minor_version : 1
compatible_brands: M4V M4A mp42isom
creation_time : 2008-06-03 05:23:28
copyright : © 2008 Blender Foundation | www.bigbuckbunny.org
title : Big Buck Bunny
artist : Peach Open Movie Team
composer : Sacha Goedegebure / Ton Roosendaal
date : 2008
Duration: 00:09:56.46, start: 0.000000, bitrate: 1626 kb/s
Stream #0:0(eng): Audio: aac (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 127 kb/s (default)
Metadata:
creation_time : 2008-06-03 05:23:28
handler_name : Apple Sound Media Handler
Stream #0:1(eng): Video: h264 (Constrained Baseline) (avc1 / 0x31637661), yuv420p(tv, smpte170m), 640x360, 1495 kb/s, 24 fps, 24 tbr, 2400 tbn, 4800 tbc (default)
Metadata:
creation_time : 2008-06-03 05:23:28
handler_name : Apple Video Media Handler
Please use -q:a or -q:v, -qscale is ambiguous
Output #0, mov, to 'out.mov':
Metadata:
major_brand : M4V
minor_version : 1
compatible_brands: M4V M4A mp42isom
date : 2008
copyright : © 2008 Blender Foundation | www.bigbuckbunny.org
title : Big Buck Bunny
artist : Peach Open Movie Team
composer : Sacha Goedegebure / Ton Roosendaal
encoder : Lavf56.4.101
Stream #0:0(eng): Video: mpeg4 (mp4v / 0x7634706D), yuv420p, 640x360, q=2-31, 200 kb/s, 24 fps, 12288 tbn, 24 tbc (default)
Metadata:
creation_time : 2008-06-03 05:23:28
handler_name : Apple Video Media Handler
encoder : Lavc56.1.100 mpeg4
Stream #0:1(eng): Audio: aac (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 128 kb/s (default)
Metadata:
creation_time : 2008-06-03 05:23:28
handler_name : Apple Sound Media Handler
encoder : Lavc56.1.100 aac
Stream mapping:
Stream #0:1 -> #0:0 (h264 (native) -> mpeg4 (native))
Stream #0:0 -> #0:1 (aac (native) -> aac (native))
Press [q] to stop, [?] for help
Error while filtering.
frame= 1 fps=0.0 q=2.0 Lsize= 22kB time=00:00:00.51 bitrate= 356.4kbits/s
video:10kB audio:11kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 7.893614%
This appears to be present in the build of FFmpeg I just did.
comment:7 by , 12 years ago
Please test current FFmpeg and please test with ./configure --enable-gpl && make.
comment:8 by , 12 years ago
FFmpeg 2.4.1 with ./configure --enable-gpl doesn't work:
# ffmpeg -y -i BigBuckBunny_640x360.m4v -vf movie=sample-128.png[o],[in][o]overlay -qscale 2 -strict -2 -vcodec mpeg4 -acodec aac out.mov
ffmpeg version 2.4.1 Copyright (c) 2000-2014 the FFmpeg developers
built on Sep 26 2014 01:55:49 with gcc 4.8 (Ubuntu 4.8.2-19ubuntu1)
configuration: --enable-gpl
libavutil 54. 7.100 / 54. 7.100
libavcodec 56. 1.100 / 56. 1.100
libavformat 56. 4.101 / 56. 4.101
libavdevice 56. 0.100 / 56. 0.100
libavfilter 5. 1.100 / 5. 1.100
libswscale 3. 0.100 / 3. 0.100
libswresample 1. 1.100 / 1. 1.100
libpostproc 53. 0.100 / 53. 0.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'BigBuckBunny_640x360.m4v':
Metadata:
major_brand : M4V
minor_version : 1
compatible_brands: M4V M4A mp42isom
creation_time : 2008-06-03 05:23:28
copyright : © 2008 Blender Foundation | www.bigbuckbunny.org
title : Big Buck Bunny
artist : Peach Open Movie Team
composer : Sacha Goedegebure / Ton Roosendaal
date : 2008
Duration: 00:09:56.46, start: 0.000000, bitrate: 1626 kb/s
Stream #0:0(eng): Audio: aac (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 127 kb/s (default)
Metadata:
creation_time : 2008-06-03 05:23:28
handler_name : Apple Sound Media Handler
Stream #0:1(eng): Video: h264 (Constrained Baseline) (avc1 / 0x31637661), yuv420p(tv, smpte170m), 640x360, 1495 kb/s, 24 fps, 24 tbr, 2400 tbn, 4800 tbc (default)
Metadata:
creation_time : 2008-06-03 05:23:28
handler_name : Apple Video Media Handler
Please use -q:a or -q:v, -qscale is ambiguous
Output #0, mov, to 'out.mov':
Metadata:
major_brand : M4V
minor_version : 1
compatible_brands: M4V M4A mp42isom
date : 2008
copyright : © 2008 Blender Foundation | www.bigbuckbunny.org
title : Big Buck Bunny
artist : Peach Open Movie Team
composer : Sacha Goedegebure / Ton Roosendaal
encoder : Lavf56.4.101
Stream #0:0(eng): Video: mpeg4 (mp4v / 0x7634706D), yuv420p, 640x360, q=2-31, 200 kb/s, 24 fps, 12288 tbn, 24 tbc (default)
Metadata:
creation_time : 2008-06-03 05:23:28
handler_name : Apple Video Media Handler
encoder : Lavc56.1.100 mpeg4
Stream #0:1(eng): Audio: aac (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 128 kb/s (default)
Metadata:
creation_time : 2008-06-03 05:23:28
handler_name : Apple Sound Media Handler
encoder : Lavc56.1.100 aac
Stream mapping:
Stream #0:1 -> #0:0 (h264 (native) -> mpeg4 (native))
Stream #0:0 -> #0:1 (aac (native) -> aac (native))
Press [q] to stop, [?] for help
Error while filtering.
frame= 1 fps=0.0 q=2.0 Lsize= 22kB time=00:00:00.51 bitrate= 356.4kbits/s
video:10kB audio:11kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 7.893614%
FFmpeg snapshot with ./configure --enable-gpl seems to work from snapshot here:
http://ffmpeg.org/releases/ffmpeg-snapshot.tar.bz2
# ffmpeg -y -i BigBuckBunny_640x360.m4v -vf movie=sample-128.png[o],[in][o]overlay -qscale 2 -strict -2 -vcodec mpeg4 -acodec aac out.mov
ffmpeg version 2.4.git Copyright (c) 2000-2014 the FFmpeg developers
built on Sep 26 2014 02:43:04 with gcc 4.8 (Ubuntu 4.8.2-19ubuntu1)
configuration: --enable-gpl
libavutil 54. 7.101 / 54. 7.101
libavcodec 56. 1.101 / 56. 1.101
libavformat 56. 5.100 / 56. 5.100
libavdevice 56. 1.100 / 56. 1.100
libavfilter 5. 1.102 / 5. 1.102
libswscale 3. 1.100 / 3. 1.100
libswresample 1. 1.100 / 1. 1.100
libpostproc 53. 1.100 / 53. 1.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'BigBuckBunny_640x360.m4v':
Metadata:
major_brand : M4V
minor_version : 1
compatible_brands: M4V M4A mp42isom
creation_time : 2008-06-03 05:23:28
copyright : © 2008 Blender Foundation | www.bigbuckbunny.org
title : Big Buck Bunny
artist : Peach Open Movie Team
composer : Sacha Goedegebure / Ton Roosendaal
date : 2008
Duration: 00:09:56.46, start: 0.000000, bitrate: 1626 kb/s
Stream #0:0(eng): Audio: aac (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 127 kb/s (default)
Metadata:
creation_time : 2008-06-03 05:23:28
handler_name : Apple Sound Media Handler
Stream #0:1(eng): Video: h264 (Constrained Baseline) (avc1 / 0x31637661), yuv420p(tv, smpte170m), 640x360, 1495 kb/s, 24 fps, 24 tbr, 2400 tbn, 4800 tbc (default)
Metadata:
creation_time : 2008-06-03 05:23:28
handler_name : Apple Video Media Handler
Please use -q:a or -q:v, -qscale is ambiguous
Output #0, mov, to 'out.mov':
Metadata:
major_brand : M4V
minor_version : 1
compatible_brands: M4V M4A mp42isom
date : 2008
copyright : © 2008 Blender Foundation | www.bigbuckbunny.org
title : Big Buck Bunny
artist : Peach Open Movie Team
composer : Sacha Goedegebure / Ton Roosendaal
encoder : Lavf56.5.100
Stream #0:0(eng): Video: mpeg4 (mp4v / 0x7634706D), yuv420p, 640x360, q=2-31, 200 kb/s, 24 fps, 12288 tbn, 24 tbc (default)
Metadata:
creation_time : 2008-06-03 05:23:28
handler_name : Apple Video Media Handler
encoder : Lavc56.1.101 mpeg4
Stream #0:1(eng): Audio: aac (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 128 kb/s (default)
Metadata:
creation_time : 2008-06-03 05:23:28
handler_name : Apple Sound Media Handler
encoder : Lavc56.1.101 aac
Stream mapping:
Stream #0:1 -> #0:0 (h264 (native) -> mpeg4 (native))
Stream #0:0 -> #0:1 (aac (native) -> aac (native))
Press [q] to stop, [?] for help
frame=14316 fps=311 q=2.0 Lsize= 203270kB time=00:09:56.50 bitrate=2791.6kbits/s
video:193587kB audio:9339kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.169158%
So, it looks like it's something that works in the main branch (which is good). Is there any chance this can be fixed either for the 2.4 branch, or at least be able to make it for 2.5?
Also, is this potentially something that can be added to the test suite so that future builds won't get this regression?
Thanks.
comment:9 by , 12 years ago
@SeventhCycle: If you could do a git bisect to find out which commit fixed the issue so we can backport it, it would be the best. However, remember to put the current HEAD as "bad" and the n2.4.1 tag as "good" as we are looking for a commit that fixes this bug, not breaks something.
comment:10 by , 12 years ago
| Resolution: | worksforme |
|---|---|
| Status: | closed → reopened |
comment:11 by , 12 years ago
| Component: | undetermined → avformat |
|---|---|
| Keywords: | image2 regression added |
| Priority: | normal → important |
| Reproduced by developer: | set |
| Status: | reopened → open |
| Version: | git-master → 2.4.1 |
comment:12 by , 12 years ago
Hi,
I confirmed this on my end.
1dbdcb4a8c76df70ab41e3dacbfe01d59ed4091e is the first good commit.
Script I ran:
git bisect start 1ea7a3e04e42f686b53704193e60d0745681a959 e1ce4f805f31aecec83fc7c7ecaab623f3b6327f git bisect run ./testscript.sh
1ea7a3e04e42f686b53704193e60d0745681a959 is the current snapshot (as of now)
e1ce4f805f31aecec83fc7c7ecaab623f3b6327f is 2.4.1
Here's the contents of testscript.sh
#!/bin/bash # edit this path mpath="/path/to/ffmpeg_folder/" ./configure --enable-gpl > /dev/null 2>&1 make -j8 > /dev/null 2>&1 make install > /dev/null 2>&1 #echo "Running FFmpeg" rm -f $mpath/out.mov ffmpeg -loglevel panic -y -i $mpath/BigBuckBunny_640x360.m4v -t 30 -vf movie=$mpath/sample-128.png[o],[in][o]overlay -qscale 2 -strict -2 -vcodec mpeg4 -acodec aac $mpath /out.mov actualsize=$(wc -c "$mpath/out.mov" | cut -f 1 -d ' ') #echo "filesize=$actualsize" if [ $actualsize -le 30000 ] then status=0 else status=1 fi echo "status is $status"; exit $status;
Here's hoping this fix can be backported to 2.4 :)
comment:13 by , 12 years ago
| Resolution: | → fixed |
|---|---|
| Status: | open → closed |
Fixed in FFmpeg 2.4.2, thank you for the report!



FFmpeg with -report flag