使用ffmpeg压制硬字幕与logo

2018.9.17更新
命令改成这样,不然将会压制出来两条视频轨道,一条有字幕一条没有 = =

ffmpeg.exe \
-i %video% \
-i %Logo% \
-filter_complex "[1]scale=100:100[logo];\
[0][logo]overlay=%pos%[taged];\
[taged]ass='%ass%'[sub]" \
-map [sub] -map 0:a %output%

btw, [1]scale=100:100[logo];这一句顾名思义是缩放的意思

%pos%可以选下面这几种

TOP_LEFT='10:10'
TOP_RIGHT='main_w-overlay_w-10:10'
BUTTOM_LEFT='10:main_h-overlay_h-10'
BUTTOM_RIGHT='main_w-overlay_w-10:main_h-overlay_h-10'

这个需求其实挺变态的
我之前压制硬字幕的命令是
ffmpeg -i input.mp4 -vf "ass=input.ass" output.mp4
压制logo的命令是
ffmpeg -i input.mp4 -i logo.ico -filter_complex overlay output.mp4

于是我想当然地把这两条语句结合
ffmpeg -i input.mp4 -i logo.ico -filter_complex overlay -vf "ass=input.ass" output.mp4
结果出现了报错

Filtergraph 'ass=source.ass' was specified through the -vf/-af/-filter option for 
output stream 0:0, which is fed from a complex filtergraph.
-vf/-af/-filter and -filter_complex cannot be used together for the same stream.

大致意思就是-vf选项不能和-filter_complex滤镜一起使用
头大

然后一番搜索之后,照着这篇的解释和这篇,拼凑出了下面这条命令

ffmpeg \
    -i source.mkv \
    -i Logo_White.ico \
    -filter_complex \
    "[0:v][1:v]overlay[logo];\
    [logo]ass=source.ass[sub]" \
    -map "[sub]" \
    output.final.mp4

我说一下自己的理解
首先看到命令中有两个输入,一个是视频文件,为 input0,一个是 logo 图像,为 input1.
filter_complex 滤镜的参数里面 [0:v]0是 input0,v代表处理的是视频而不是音频,处理音频的待会儿再讲
整体来看,[0:v][1:v]overlay[logo]是一个2输入1输出的管子,管子把 input1 的视频流(此处为一张图)叠加到 input0 的上面,出来的产品叫做[logo]
然后下一句[logo]ass=source.ass[sub]中,可以把中间那个ass滤镜当做一个1输入1输出的管子,这个管子对每个视频流进行处理,在视频上打上字幕,出来的产品叫做[sub]
最终把这个[sub] 映射到 output.final.mp4 上面

这样处理出来的视频logo和字幕都有了,但还有一个问题:音频流全部丢失,处理出来的是无声视频,大致猜测是由于我们只处理了视频流,导致音频流丢失。

又是一番搜索,终于在这里看到了一点蛛丝马迹

-map 0:0: add the first input's first stream to the output (which is the video)

也就是把第一个输入(input0)的第一个音轨(stream0)映射到输出中

手残的我在命令里加入了一句-map 0,0

ffmpeg \
    -i source.mkv \
    -i Logo_White.ico \
    -filter_complex \
    "[0:v][1:v]overlay[logo];\
    [logo]ass=source.ass[sub]" \
    -map [sub] \
    -map 0,0 \
    output.final.mp4

误打误撞居然有声音了
我也不知道为什么,难道说是我的版本把这个命令的用法改了??有人知道吗

附上我的环境

ffmpeg version 3.3.2-1 Copyright (c) 2000-2017 the FFmpeg developers
  built with gcc 6.4.0 (Debian 6.4.0-2) 20170724
  configuration: --prefix=/usr --extra-version=1 --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --enable-gpl --disable-stripping --enable-avresample --enable-avisynth --enable-gnutls --enable-ladspa --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libmp3lame --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx265 --enable-libxvid --enable-libzmq --enable-libzvbi --enable-omx --enable-openal --enable-opengl --enable-sdl2 --enable-libdc1394 --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libopencv --enable-libx264 --enable-shared
  libavutil      55. 58.100 / 55. 58.100
  libavcodec     57. 89.100 / 57. 89.100
  libavformat    57. 71.100 / 57. 71.100
  libavdevice    57.  6.100 / 57.  6.100
  libavfilter     6. 82.100 /  6. 82.100
  libavresample   3.  5.  0 /  3.  5.  0
  libswscale      4.  6.100 /  4.  6.100
  libswresample   2.  7.100 /  2.  7.100
  libpostproc    54.  5.100 / 54.  5.100
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,684评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,143评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,214评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,788评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,796评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,665评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,027评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,679评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 41,346评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,664评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,766评论 1 331
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,412评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,015评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,974评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,203评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,073评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,501评论 2 343

推荐阅读更多精彩内容

  • 超高速音视频编码器用法: ffmpeg [options] [[infile options] -i infile...
    吉凶以情迁阅读 4,582评论 0 4
  • 使用 ffmpeg 缩放、裁剪、剪辑视频 我们平时使用手机拍摄的视频一般都在1080p及以上,在实际应用中,比如共...
    玛格纳斯阅读 1,862评论 2 1
  • 撑着一把油纸伞,恣意的行走于紫陌红尘。 看遍巫山云雨,历经沧海桑田,也幸福过,也心酸过。 抬头凝望古旧的城墙,油漆...
    未凂君阅读 503评论 8 2
  • 短暂的背部塑形完,准备开始学习5分钟商学院,昨日凌晨12点下的订单,在那之前下定的决心。问为什么现在才开始...
    小猪猪同学阅读 167评论 4 2
  • 虽然路途坎坷逶迤, 前进的道路被崇山峻岭阻挡, 毅力的心智不屈服于外在的苦难, 脚步之下踏出一个世界。 在我眼里苦...
    拉普塔普阅读 204评论 2 2