我正在使用ffmpeg从静止图像构建时间流逝动画。 重复第一个图像以创建标题。接下来的步骤是连接标题加上最终视频的时间流逝。标题和时间流逝都很好。创建连接的最终视频不会产生预期的结果。
关于kubuntu 14的ffmpeg版本1.2.6-7。
标题
ffmpeg -framerate 16 -f image2 -i './Header/Sun_20150214_head_%02d.png' -vf "crop=1240:940:40:10" -vf drawtext="fontsize=100:fontcolor=yellow:fontfile=/usr/share/fonts/truetype/freefont/FreeSans.ttf:textfile=./scripts/header_text.txt:x=(w-text_w)/2:y=(h-text_h-line_h)/2" -c:v libx264 -pix_fmt yuv420p -crf 16 -y ./Video/sunspot_20150214_header.mp4
ffmpeg -i ./Video/sunspot_20150214_header.mp4 -vf fade=in:0:30 -crf 24 -y ./Video/sunspot_20150214_header_fade.mp4
它自己的标题可以正常播放并且有很好的淡入淡出效果。
现在为时间流逝:
ffmpeg -r 12 -threads 0 -f image2 -pattern_type glob -i './npy2reg/Sun_20150214_*.png' -c:v libx264 -crf 16 -vf "crop=1240:940:40:10" -y ./Video/sunspot_20150214_crf16_12fps.mp4
它自己的时间流逝很好。
尝试使用带有指向两个输入文件的指针的concat.txt文件进行concat。 concat.txt文件:
file '/home/gottsch/sunspot_20150214/Video/sunspot_20150214_header_fade.mp4'
file '/home/gottsch/sunspot_20150214/Video/sunspot_20150214_crf16_12fps.mp4'
ffmpeg的命令:
ffmpeg -f concat -i ./scripts/concat.txt -c copy -y ./Video/sunspot_20150214_crf16_12fps_final.mp4
这给出了我的输出文件 sunspot_20150214_crf16_12fps_final.mp4
。
问题:输出文件仅显示标题。
我已经读过ffmpeg concat引擎要求输入视频是相同的格式,我相信当ffmpeg创建它们时。
非常感谢您的帮助。
谢谢, 格特
更新:
我被要求提供以下cmd的控制台输出:
gottsch@ubuntu:~/sunspot_20150214$ ffmpeg -i './Header/Sun_20150214_head_%02d.png' -pattern_type glob -i './npy2reg/Sun_20150214_*.png'
ffmpeg version 1.2.6-7:1.2.6-1~trusty1 Copyright (c) 2000-2014 the FFmpeg developers
built on Apr 26 2014 18:52:58 with gcc 4.8 (Ubuntu 4.8.2-19ubuntu1)
configuration: --arch=amd64 --disable-stripping --enable-avresample --enable-pthreads --enable-runtime-cpudetect --extra-version='7:1.2.6-1~trusty1' --libdir=/usr/lib/x86_64-linux-gnu --prefix=/usr --enable-bzlib --enable-libdc1394 --enable-libfreetype --enable-frei0r --enable-gnutls --enable-libgsm --enable-libmp3lame --enable-librtmp --enable-libopencv --enable-libopenjpeg --enable-libopus --enable-libpulse --enable-libschroedinger --enable-libspeex --enable-libtheora --enable-vaapi --enable-vdpau --enable-libvorbis --enable-libvpx --enable-zlib --enable-gpl --enable-postproc --enable-libcdio --enable-x11grab --enable-libx264 --shlibdir=/usr/lib/x86_64-linux-gnu --enable-shared --disable-static
libavutil 52. 18.100 / 52. 18.100
libavcodec 54. 92.100 / 54. 92.100
libavformat 54. 63.104 / 54. 63.104
libavdevice 53. 5.103 / 53. 5.103
libavfilter 3. 42.103 / 3. 42.103
libswscale 2. 2.100 / 2. 2.100
libswresample 0. 17.102 / 0. 17.102
libpostproc 52. 2.100 / 52. 2.100
Input #0, image2, from './Header/Sun_20150214_head_%02d.png':
Duration: 00:00:02.36, start: 0.000000, bitrate: N/A
Stream #0:0: Video: png, rgb24, 1280x960, 25 fps, 25 tbr, 25 tbn, 25 tbc
Input #1, image2, from './npy2reg/Sun_20150214_*.png':
Duration: 00:00:01.76, start: 0.000000, bitrate: N/A
Stream #1:0: Video: png, rgb24, 1280x960, 25 fps, 25 tbr, 25 tbn, 25 tbc
At least one output file must be specified
gottsch@ubuntu:~/sunspot_20150214$
接下来,在一个cmd中处理这两个部分似乎没问题。我的图像处理脚本以枚举格式创建文件,因此第二部分可以在没有带%符号的glob的情况下编写。
ffmpeg -i './Header/Sun_20150214_head_%02d.png' -i './npy2reg/Sun_20150214_%02d.png'
关于丢失输出文件的cmd行错误没有问题。我关心的是我计划合并的一系列过滤器。 (淡入淡出,文本,作物)。是否有关于过滤器的正确排序和优先级控制的教程?
我也关注创建的mpeg最广泛的兼容性,以便大多数设备/操作系统/浏览器组合可以处理它。
在我的上一次尝试中,我收到的反馈是,它在MAC OS浏览器中失败,缺少插件错误。
谢谢, 格特
UPDATE2
以下行仅生成标题的视频。没有显示时间流逝的帧。
ffmpeg -i './Header/Sun_20150214_head_%02d.png' -i './npy2reg/Sun_20150214_%02d.png' -codec:v libx264 -pix_fmt yuv420p -crf 16 -y ./Video/sunspot_20150214_crf16_12fps_test.mp4
ffmpeg -i './Header/Sun_20150214_head_%02d.png' -pattern_type glob -i './npy2reg/Sun_20150214_*.png' -codec:v libx264 -pix_fmt yuv420p -crf 16 -y ./Video/sunspot_20150214_crf16_12fps_test.mp4
最好, 格特
ffmpeg -i './Header/Sun_20150214_head_%02d.png' -pattern_type glob -i './npy2reg/Sun_20150214_*.png'