请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

为什么加水印之后变模糊了.

图片描述

源文件是overwatch.flv
通过ffmpeg -i overwatch.flv -c:v copy -c:a copy ./overwatch.mp4
获得overwatch.mp4

之后分别对两个文件加水印,

#ow_overlay.mp4
ffmpeg -i overwatch.mp4 -vf "movie=ffmpeg_150px.png[wm]; [in][wm]overlay=100:100[out]" ./ow_overlay.mp4

#ow_overlay.flv
ffmpeg -i overwatch.flv -vf "movie=ffmpeg_150px.png[wm]; [in][wm]overlay=100:100[out]" ./ow_overlay.flv

就成了上图的效果,flv是下面的图,变糊了.

why??

正在回答

2回答

看到你做这样的实验非常的高兴,而且问题描述的很清楚。我们学习就是要多做实验,多去对比。看看到底会是怎样一个效果。

对于给图片加水印,我们首先解理其背后的原理是ffmpeg 需要将原来的视频进行解码,然后加水印,然后再编码这样一个过程。

那么为什么会出现 .flv加了水印之后,会变模糊呢?

首先,你可用ffplay播放一下原始视频和加了水印的视频,看看每个视频 meta 信息是不是发生了变化。如分变率,码率,帧率这些是重点关注的信息。

第二,为什么图像会变模糊呢?一般情况下有两种原因:其一是码率降低了,也就是视频存的数据少了。按 h264的压缩原理,当数据变少时,它会损失原来的图像信息。其二是分变率变小了,当你观看时,将小的图像变大时,就会看到模糊的现像。

所以,你通过ffplay看一下后台的 meta 信息就可以知道答案了,

你可以通过下面的命令看一下是否能做出与 mp4一样的效果来:

ffmpeg -i overwatch.flv -c:v libx264 -preset veryslow -c:a copy -vf "movie=ffmpeg_150px.png[wm];[in][wm] overlay=100:100[out]" ow_overlay.flv


0 回复 有任何疑惑可以回复我~
  • 提问者 wangzhumo #1
    非常感谢!
    回复 有任何疑惑可以回复我~ 2018-09-22 14:54:59
  • 提问者 wangzhumo #2
    ffmpeg -i overwatch.flv -c:v libx264 -preset veryslow -c:a copy -vf "movie=ffmpeg_150px.png[wm];[in][wm] overlay=100:100[out]" ./ow_overlay_new.flv
    
    编码出来很清晰
    -preset veryslow  是啥意思那?
    回复 有任何疑惑可以回复我~ 2018-09-22 14:56:56
提问者 wangzhumo 2018-09-22 14:54:42
#overwatch.flv
Duration: 00:02:23.57, start: 0.000000, bitrate: 2017 kb/s
    Stream #0:0: Video: h264 (High), yuv420p(tv, bt709, progressive), 1920x1080 [SAR 1:1 DAR 16:9], 1879 kb/s, 60 fps, 60 tbr, 1k tbn, 120 tbc

#fliter overlay.flv
Duration: 00:02:23.62, start: 0.000000, bitrate: 4053 kb/s
    Stream #0:1: Video: flv1, yuv420p, 1920x1080, 200 kb/s, 60 fps, 60 tbr, 1k tbn

#overwatch.mp4
Duration: 00:02:23.59, start: 0.000000, bitrate: 2016 kb/s
    Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p(tv, bt709), 1920x1080 [SAR 1:1 DAR 16:9], 1876 kb/s, 60 fps, 60 tbr, 16k tbn, 120 tbc (default)
      
#filter overlay.mp4      
Duration: 00:02:23.62, start: 0.000000, bitrate: 2099 kb/s
    Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 1920x1080 [SAR 1:1 DAR 16:9], 1958 kb/s, 60 fps, 60 tbr, 15360 tbn, 120 tbc (default)

1879 kb/s,

200 kb/s,

1876 kb/s,

1958 kb/s


编码变成flv1,码率也是200...,

0 回复 有任何疑惑可以回复我~
  • 李超 #1
    preset 就是预设参数。ffmpeg对于视频编码预先设置了几个。分为 ultrafast, fast, slow, veryslow......, 其中编码越快,对质理的损耗最大,编码越慢对视频质量的损耗超小。
    回复 有任何疑惑可以回复我~ 2018-09-22 23:50:43
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信