我正在开发一个Windows服务,我的Windows服务使用“ffmpeg”,同时我正在开发一个用于测试代码的桌面应用程序。
我想在我的视频中导入水印。我可以使用我的桌面应用程序。但是当我运行我的Windows服务时,它会出错。
ffmpeg version N-36635-gceb0dd9 Copyright (c) 2000-2012 the FFmpeg developers
built on Jan 9 2012 17:39:58 with gcc 4.6.2
configuration: --enable-gpl --enable-version3 --disable-w32threads --enable-runtime-cpudetect --enable-avisynth --enable-bzlib --enable-frei0r --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libfreetype --enable-libgsm --enable-libmp3lame --enable-libopenjpeg --enable-librtmp --enable-libschroedinger --enable-libspeex --enable-libtheora --enable-libvo-aacenc --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libxavs --enable-libxvid --enable-zlib
libavutil 51. 34.100 / 51. 34.100
libavcodec 53. 54.100 / 53. 54.100
libavformat 53. 29.100 / 53. 29.100
libavdevice 53. 4.100 / 53. 4.100
libavfilter 2. 58.100 / 2. 58.100
libswscale 2. 1.100 / 2. 1.100
libswresample 0. 6.100 / 0. 6.100
libpostproc 51. 2.100 / 51. 2.100
[mpeg4 @ 01CA93A0] Invalid and inefficient vfw-avi packed B frames detected
Input #0, avi, from 'C:\Apps\SabilVideoProcesser\WAITING_FOR_WATERMARK\Pixar - For the Birds.avi':
Metadata:
encoder : Nandub v1.0rc2
Duration: 00:03:16.56, start: 0.000000, bitrate: 2113 kb/s
Stream #0:0: Video: mpeg4 (DX50 / 0x30355844), yuv420p, 720x416 [SAR 1:1 DAR 45:26], 25 fps, 25 tbr, 25 tbn, 30k tbc
Stream #0:1: Audio: mp3 (U[0][0][0] / 0x0055), 48000 Hz, stereo, s16, 32 kb/s
[buffer @ 02746A20] w:720 h:416 pixfmt:yuv420p tb:1/1000000 sar:1/1 sws_param:
[movie @ 02748E00] Failed to avformat_open_input 'logo.png'
Error initializing filter 'movie' with args 'logo.png'
Error opening filters!
我有时会更改logo.png,但它没有工作和修复。我不明白什么是错的?
我尝试更改ffmpeg.exe并从“http://ffmpeg.arrozcru.org/autobuilds/ffmpeg/mingw32/static/”下载,但是当我运行服务时,我再次收到错误。这次错误不同我会发疯...
FFmpeg version SVN-r26400, Copyright (c) 2000-2011 the FFmpeg developers
built on Jan 18 2011 04:07:05 with gcc 4.4.2
configuration: --enable-gpl --enable-version3 --enable-libgsm --enable-libvorbis --enable-libtheora --enable-libspeex --enable-libmp3lame --enable-libopenjpeg --enable-libschroedinger --enable-libopencore_amrwb --enable-libopencore_amrnb --enable-libvpx --disable-decoder=libvpx --arch=x86 --enable-runtime-cpudetect --enable-libxvid --enable-libx264 --enable-librtmp --extra-libs='-lrtmp -lpolarssl -lws2_32 -lwinmm' --target-os=mingw32 --enable-avisynth --enable-w32threads --cross-prefix=i686-mingw32- --cc='ccache i686-mingw32-gcc' --enable-memalign-hack
libavutil 50.36. 0 / 50.36. 0
libavcore 0.16. 1 / 0.16. 1
libavcodec 52.108. 0 / 52.108. 0
libavformat 52.93. 0 / 52.93. 0
libavdevice 52. 2. 3 / 52. 2. 3
libavfilter 1.74. 0 / 1.74. 0
libswscale 0.12. 0 / 0.12. 0
[mpeg4 @ 003dfbd0] Invalid and inefficient vfw-avi packed B frames detected
[mpeg4 @ 003dfbd0] frame skip 8
Seems stream 0 codec frame rate differs from container frame rate: 30000.00 (30000/1) -> 25.00 (25/1)
Input #0, avi, from 'C:\Apps\SabilVideoProcesser\WAITING_FOR_WATERMARK\Pixar - For the Birds.avi':
Metadata:
encoder : Nandub v1.0rc2
Duration: 00:03:16.56, start: 0.000000, bitrate: 2113 kb/s
Stream #0.0: Video: mpeg4, yuv420p, 720x416 [PAR 1:1 DAR 45:26], 25 fps, 25 tbr, 25 tbn, 30k tbc
Stream #0.1: Audio: mp3, 48000 Hz, 2 channels, s16, 189 kb/s
[buffer @ 020d51b0] w:720 h:416 pixfmt:yuv420p
No such filter: 'movie'
Error opening filters!
这是我的ffmpeg params;
-i "C:\Apps\SabilVideoProcesser\WAITING_FOR_WATERMARK\Pixar - For the Birds.avi" -vf "movie=logo.png [watermark]; [in][watermark] overlay=main_w-overlay_w-10:10 [out]" -vcodec libx264 -acodec ac3_fixed "C:\Apps\SabilVideoProcesser\WAITING_FOR_SPLIT\inprocess_Pixar - For the Birds.avi"
答案 0 :(得分:2)
Failed to avformat_open_input 'logo.png'
您遇到两个不同的问题。消息Failed to avformat_open_input 'logo.png'
可能表示ffmpeg找不到logo.png
(或者可能无法正确解码)。要么提供文件的绝对路径,要么将它放在同一目录(或“我认为是Windows白话”的“文件夹”)作为ffmpeg二进制文件。如果文件位于正确的位置,请运行ffmpeg -i logo.png
以查看ffmpeg是否可以解码它。
No such filter: 'movie'
第二条消息No such filter: 'movie'
表示此命令中使用的ffmpeg太旧,不支持过滤器,或者对于movie
来说太旧了。来自arrozcru.org的二进制文件已过时。 Zeranoe FFmpeg Builds保持最新并且配置得很清楚。你应该继续前进并获得更新的二进制文件。修订版36635已经至少修改了3696次。然后查看FFmpeg: The ultimate Video and Audio Manipulation Tool以获得有关使用情况的详细概述。
无论如何,您不需要movie
源过滤器来添加水印。请参阅How to add transparent watermark in center of a video with ffmpeg?
答案 1 :(得分:0)
面对同样的问题
(使用args' /mnt/sdcard/MyApp/frame.png'初始化过滤器'电影'时出错。)。
在我的Android应用程序中使用静态ffmpeg库。在三星Galaxy s3上工作正常,但在lenovo和htc 2.3.6上我在ffmpeg中有同样的错误 - 他找不到我的水印。通过在与ffmpeg(可执行文件)相同的文件夹中移动waterkmark来修复此错误。所以现在我在电影过滤器中使用下一个路径" ... movie = frame.png ..."而不是" ... movie = / mnt / sdcard / MyApp / frame.png"。仍然不知道这是一个错误还是我做错了什么。