Opened 10 years ago
Closed 10 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 , 10 years ago
Attachment: | ffmpeg-20140925-192125.log added |
---|
comment:2 by , 10 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 , 10 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 , 10 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 , 10 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 , 10 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 , 10 years ago
Please test current FFmpeg and please test with ./configure --enable-gpl && make
.
comment:8 by , 10 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 , 10 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 , 10 years ago
Resolution: | worksforme |
---|---|
Status: | closed → reopened |
comment:11 by , 10 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 , 10 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 , 10 years ago
Resolution: | → fixed |
---|---|
Status: | open → closed |
Fixed in FFmpeg 2.4.2, thank you for the report!
FFmpeg with -report flag