首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在FFMpeg中刻录字幕文件和时间码

如何在FFMpeg中刻录字幕文件和时间码
EN

Stack Overflow用户
提问于 2015-09-24 14:19:46
回答 2查看 6K关注 0票数 2

我试图将一个SRT文件和一个timecode值刻录(硬代码)到一个MP4文件,但没有效果。

我目前正在使用以下命令烧录srt和timecode:

烧伤SRT

代码语言:javascript
复制
ffmpeg -i input.mp4 -vf subtitles=subs.srt out.mp4

烧伤时间码

代码语言:javascript
复制
ffmpeg -i input.mp4  -filter_complex "drawtext=fontfile=/Windows/Fonts/arial.ttf:x=320:y=main_h-50:fontsize=32:fontcolor='white':timecode='00\:00\:00\:00':rate=29.97" -y output.mp4

但是,由于ffmpeg不允许将-vf和-filter_complex一起使用,所以我无法将两者合并到一个命令中。

有解决办法吗?

EN

回答 2

Stack Overflow用户

发布于 2015-09-25 16:44:01

你可以在一个系列中把过滤器链接在一起。这将创建一个过滤链。一系列连通的过滤链是一个过滤器图。

代码语言:javascript
复制
ffmpeg -i input.mp4 -vf "drawtext,subtitles" -c:a copy output.mp4
  • -vf用于简单(视频)滤波图,它由一个输入和一个输出组成。
  • -filter_complex用于复滤波图,它由一个或多个输入和/或一个或多个输出组成。但是,我不认为使用-filter_complex进行简单的过滤图会引起任何问题。
  • 因为您的输入和输出都是MP4,所以我在流拷贝中添加了-c:a copy,因为您可能不需要或者不想重新编码它。
  • 要获得更高的准确性,请考虑使用rate=ntscrate=30000/1001而不是rate=29.97
票数 1
EN

Stack Overflow用户

发布于 2016-04-04 11:16:02

只是为了任何遇到这个qs的人。您可以使用.srt文件,就像我对.ass文件所做的一样,唯一的区别是.ass文件给了我们对字体、颜色和其他事情的更多控制。我找不到.srt,所以我将共享为我工作的.ass,我使用的是hls输出,但是您可以再次使用mp4 1:

代码语言:javascript
复制
ffmpeg  -i INPUT_VIDEO_FILE.mp4 -profile:v baseline -level 4.0 -vf "scale=-2:360,subtitles='dynamic_subtitle.ass':force_style='FontName=Aaargh/Aaargh.ttf,PrimaryColour=&H664c4c4c"  -start_number 0 -hls_time 10 -hls_list_size 0 -f hls /s3_temp/video_360.m3u8
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32763803

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档