请选择 进入手机版 | 继续访问电脑版
设为首页收藏本站
开启辅助访问
切换到宽版

ChinaFFmpeg

 找回密码
 立即注册

QQ登录

只需一步,快速开始

用新浪微博登录

只需一步,快速搞定

搜索
热搜: 活动 交友 discuz
查看: 3671|回复: 26

[Linux] FFMPEG添加字幕加效果的问题

[复制链接]
黑户  发表于 2018-2-27 11:31:24 |阅读模式

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

@大师兄 在不啦  
回复

使用道具

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

[AppleScript] 纯文本查看 复制代码
bogon:~ StevenLiu$ brew info ffmpeg
ffmpeg: stable 4.1 (bottled), HEAD
Play, record, convert, and stream audio and video
[url]https://ffmpeg.org/[/url]
/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: [url]https://github.com/Homebrew/homebrew-core/blob/master/Formula/ffmpeg.rb[/url]
==> 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$
回复 支持 1 反对 0

使用道具 举报

发表于 2018-2-27 12:06:14 | 显示全部楼层
可以实现,字幕在滤镜里面可以out connect到一个video的label上,然后对label做fade处理即可

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

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

滤镜参数使用
-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 "[2:v]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[t1];[0:a]afade=t=out:start_time=2:d=2[a0];[0:v] 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[v0];[1:a]afade=t=in:d=2,adelay=5000|5000|5000[a1];[1:v]fade=d=2:c=White,setpts=PTS+5/TB [v1]; [v0][v1]overlay=x=0:y=0 [o]; [a1][a0]amerge=inputs=2[ao];[t1]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)'[t2];[o][t2]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)' [ovv]" -map '[ovv]' -map '[ao]' -ac 2 -movflags faststart -t 9 -vcodec libx264 -b:v 1000k -y test.mp4
回复 支持 反对

使用道具 举报

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

[mw_shl_code ...

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

使用道具

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

[AppleScript] 纯文本查看 复制代码
./ffmpeg -f lavfi -i color=c=white:s=1280x720:d=3 -filter_complex "[0:v]split=2[1v][2v];[1v]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[t1];[2v]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[v2];[t1]fade=t=out:start_time=1:d=1:c=White[ov1];[v2]fade=d=2:c=White,setpts=PTS+2/TB[ov2];[ov1][ov2]overlay=x=0:y=0" -s 352x288 a.mp4


效果如附件
游客,如果您要查看本帖隐藏内容请回复

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 支持 反对

使用道具 举报

黑户  发表于 2018-2-27 14:53:31
好的 谢谢T-Bagwell  我试试
回复 支持 反对

使用道具

发表于 2018-3-9 15:44:09 | 显示全部楼层
kankan
回复

使用道具 举报

发表于 2018-3-23 08:28:23 | 显示全部楼层
ffmpeg添加字幕加特效
回复 支持 反对

使用道具 举报

发表于 2018-4-5 17:18:58 | 显示全部楼层
想看啊           啊啊啊啊啊a
回复 支持 反对

使用道具 举报

发表于 2018-4-9 22:54:20 | 显示全部楼层
看看效果  谢谢!
回复 支持 反对

使用道具 举报

发表于 2018-4-11 17:28:46 | 显示全部楼层
想看看
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|Archiver|ChinaFFmpeg    

GMT+8, 2018-12-14 12:09 , Processed in 0.032546 second(s), 21 queries .

Powered by ChinaFFmpeg

© 2013 - 2018 www.chinaffmpeg.com

快速回复 返回顶部 返回列表