leshow♪ 发表于 2018-2-27 11:31:24

FFMPEG添加字幕加效果的问题


FFMPEG添加字幕加效果的问题,我通过
drawtext给视频添加字幕,但想给字幕加点效果,比如字幕出现时加个淡入效果,字幕隐藏时加个淡出效果,可以实现么?

@大师兄 在不啦

孙悟空 发表于 2018-2-27 12:06:14

可以实现,字幕在滤镜里面可以out connect到一个video的label上,然后对label做fade处理即可


例子
带源音频的视频淡出并且在淡出之前最后几帧突然放大加入纯色然后支持用户输入的文字从下向上滑动到中间然后文字最后几帧突然放大然后下一个视频淡入

说明
带源音频的视频淡出并且在淡出之前最后几帧突然放大加入纯色然后支持用户输入的文字从下向上滑动到中间然后文字最后几帧突然放大然后下一个视频淡入

滤镜参数使用
-f lavfi 设备与 -i color 创建显示文字的画布
scale: 统一图像分辨率
fade: 淡入淡出滤镜
setpts: 视频偏移起始时间
overlay: 多图层操作
afade: 音频淡入淡出滤镜
amerge: 多音频轨道合并
adelay: 音频多声道延迟播放处理
drawtext: 支持输入文字处理
zoompan: 图像放大处理
gte 、 max、 between、 if、 lte、 zoom 内置函数

命令行举例
@~/multimedia/ffmpeg/dash/ffmpeg i ~/Movies/objectC/facebook.mp4 -i ~/Movies/objectC/chuangshiji.mp4 -f lavfi -i color=c=white:s=1280x720 -filter_complex "drawtext=fontfile=/System/Library/Fonts/STHeiti\ Medium.ttc: text='下面是电视剧':fontsize=48:fontcolor=Black@0.5:shadowy=2:x=(w-text_w)/2:y=(h-text_h)/2;afade=t=out:start_time=2:d=2; zoompan=z='if(lte(in,85),zoom,min(max(zoom,pzoom)+0.8, 9))':d=1:x='iw/2(iw/zoom/2)':y='ih/2-(ih/zoom/2)',fade=t=out:start_time=2:d=2:c=White;afade=t=in:d=2,adelay=5000|5000|5000;fade=d=2:c=White,setpts=PTS+5/TB ; overlay=x=0:y=0 ; amerge=inputs=2;setpts=PTS+3.5/TB,colorkey=White:0.01:0.1,zoompan=z='if(lte(in,120),zoom,min(max(zoom,pzoom)+0.8, 9))':d=1:x='iw/2-(iw/zoom/2)':y='ih/2-(ih/zoom/2)';overlay=y='if(gte(t,1), max(H-(t-2)*270, H/2-h/2), NAN)':x=W/2-w/2:enable='between(t,2,5)' " -map '' -map '' -ac 2 -movflags faststart -t 9 -vcodec libx264 -b:v 1000k -y test.mp4

孙悟空 发表于 2018-11-30 19:43:21

炎之铠 发表于 2018-11-30 16:35
新手想问下,mac系统用homebrew安装的ffmpeg,然后发现没有drawtext这个filter,是不是要重新编译一个,加 ...

bogon:~ StevenLiu$ brew info ffmpeg
ffmpeg: stable 4.1 (bottled), HEAD
Play, record, convert, and stream audio and video
https://ffmpeg.org/
/usr/local/Cellar/ffmpeg/3.3.3 (243 files, 50.8MB)
Poured from bottle on 2017-09-04 at 22:55:57
/usr/local/Cellar/ffmpeg/4.0.1 (246 files, 49.7MB)
Poured from bottle on 2018-08-03 at 13:15:43
/usr/local/Cellar/ffmpeg/4.1 (282 files, 55.4MB)
Poured from bottle on 2018-11-16 at 18:19:23
From: https://github.com/Homebrew/homebrew-core/blob/master/Formula/ffmpeg.rb
==> Dependencies
Build: nasm ✘, pkg-config ✔, texi2html ✔
Required: lame ✔, libvorbis ✔, libvpx ✔, opus ✔, sdl2 ✔, snappy ✔, theora ✔, x264 ✔, x265 ✔, xvid ✔, xz ✔
Optional: chromaprint ✘, fdk-aac ✘, fontconfig ✔, freetype ✔, frei0r ✔, game-music-emu ✘, libass ✘, libbluray ✘, libbs2b ✘, libcaca ✘, libgsm ✘, libmodplug ✘, librsvg ✘, libsoxr ✘, libssh ✘, libvidstab ✘, opencore-amr ✘, openh264 ✘, openjpeg ✘, openssl ✔, rtmpdump ✘, rubberband ✘, speex ✘, srt ✘, tesseract ✔, two-lame ✘, wavpack ✘, webp ✔, zeromq ✘, zimg ✘
==> Options
--with-chromaprint
        Enable the Chromaprint audio fingerprinting library
--with-fdk-aac
        Enable the Fraunhofer FDK AAC library
--with-fontconfig
        Build with fontconfig support
--with-freetype
        Build with freetype support
--with-frei0r
        Build with frei0r support
--with-game-music-emu
        Build with game-music-emu support
--with-libass
        Enable ASS/SSA subtitle format
--with-libbluray
        Build with libbluray support
--with-libbs2b
        Build with libbs2b support
--with-libcaca
        Build with libcaca support
--with-libgsm
        Build with libgsm support
--with-libmodplug
        Build with libmodplug support
--with-librsvg
        Enable SVG files as inputs via librsvg
--with-libsoxr
        Enable the soxr resample library
--with-libssh
        Enable SFTP protocol via libssh
--with-libvidstab
        Enable vid.stab support for video stabilization
--with-opencore-amr
        Enable Opencore AMR NR/WB audio format
--with-openh264
        Enable OpenH264 library
--with-openjpeg
        Enable JPEG 2000 image format
--with-openssl
        Enable SSL support
--with-rtmpdump
        Enable RTMP protocol
--with-rubberband
        Enable rubberband library
--with-speex
        Build with speex support
--with-srt
        Enable SRT library
--with-tesseract
        Enable the tesseract OCR engine
--with-two-lame
        Build with two-lame support
--with-wavpack
        Build with wavpack support
--with-webp
        Enable using libwebp to encode WEBP images
--with-zeromq
        Enable using libzeromq to receive commands sent through a libzeromq client
--with-zimg
        Enable z.lib zimg library
--HEAD
        Install HEAD version
bogon:~ StevenLiu$

leshow♪ 发表于 2018-2-27 14:12:26

孙悟空 发表于 2018-2-27 12:06
可以实现,字幕在滤镜里面可以out connect到一个video的label上,然后对label做fade处理即可



好的 谢谢大师兄,看这里命令还挺多的,能否直接通过drawtext来实现呢? 可能需要添加多个字幕

T-Bagwell 发表于 2018-2-27 14:35:43

leshow♪ 发表于 2018-2-27 14:12
好的 谢谢大师兄,看这里命令还挺多的,能否直接通过drawtext来实现呢? 可能需要添加多个字幕 ...

./ffmpeg -f lavfi -i color=c=white:s=1280x720:d=3 -filter_complex "split=2;drawtext=fontfile=/System/Library/Fonts/STHeiti\ Medium.ttc: text='Test 1':fontsize=48:fontcolor=Black@0.5:shadowy=2:x=(w-text_w)/2:y=(h-text_h)/2;drawtext=fontfile=/System/Library/Fonts/STHeiti\ Medium.ttc: text='测试二':fontsize=48:fontcolor=Black@0.5:shadowy=2:x=(w-text_w)/2:y=(h-text_h)/2;fade=t=out:start_time=1:d=1:c=White;fade=d=2:c=White,setpts=PTS+2/TB;overlay=x=0:y=0" -s 352x288 a.mp4

效果如附件
**** Hidden Message *****

leshow♪ 发表于 2018-2-27 14:53:31

好的 谢谢T-Bagwell我试试

asdlei0 发表于 2018-3-9 15:44:09

kankan

ffplayer 发表于 2018-3-23 08:28:23

ffmpeg添加字幕加特效

何小凯 发表于 2018-4-5 17:18:58

想看啊         啊啊啊啊啊a

330586792 发表于 2018-4-9 22:54:20

看看效果谢谢!

wleige 发表于 2018-4-11 17:28:46

想看看
页: [1] 2 3 4 5 6
查看完整版本: FFMPEG添加字幕加效果的问题