我想要水印,减少weigth,调整大小和改变选定的视频格式。此外,我需要保持尽可能高的质量。
我现在拥有的是:
ffmpeg -i prepared/video.mp4 -i units/video_watermark.png -filter_complex overlay=10:10 -codec:a copy moved/video_test.mp4我是水印视频,但质量下降很多。此外,我还有:
ffmpeg -i prepared/video.mp4 -s 1280x720 -b 512k -vcodec mpeg1video -acodec copy而且我也需要尽可能的减轻体重。重建后的视频将作为电影在线放映。我的问题是-是否有可能做到一行并将格式更改为.mp4?
PS。我已经建立了指挥部:
ffmpeg -i downloaded/movie/movie.avi -c:v libx264 -acodec libfaac -b:a 64k -preset ultrafast -vf "movie=units/video_watermark.png [watermark]; [in][watermark] overlay=10:10 [out]" -movflags faststart prepared/movie.mp4但它会返回错误:
ffmpeg version 2.7.1 Copyright (c) 2000-2015 the FFmpeg developers
built with gcc 4.8 (Ubuntu 4.8.4-2ubuntu1~14.04)
configuration:
libavutil 54. 27.100 / 54. 27.100
libavcodec 56. 41.100 / 56. 41.100
libavformat 56. 36.100 / 56. 36.100
libavdevice 56. 4.100 / 56. 4.100
libavfilter 5. 16.101 / 5. 16.101
libswscale 3. 1.101 / 3. 1.101
libswresample 1. 2.100 / 1. 2.100
Unrecognized option 'preset'.
Error splitting the argument list: Option not found发布于 2015-07-27 17:08:40
当您试图缩小文件大小时,无法保留输入源的原始质量。仍然可以调整属性来完成这一任务,直到人眼无法识别质量差异为止。好吧,要回答你的问题,你可以水印,减少文件大小(降低质量)和调整输入视频的大小在一个命令行。
为此,您需要使用filter_complex相应地链接所有所需的过滤器。要获得水印,可以使用overlay过滤器并在视频中定位它。scale过滤器将视频或图像的大小调整到指定的宽度和高度.重要的是,要调整最终输出的质量,可以使用crf。此外,如果您需要对文件大小的调整进行更多的控制,可以显式地指定视频的帧率和比特率。
ffmpeg -y -i input_video -i input_image -filter_complex "
[0:0]scale=1280:720[scaled];
[scaled][1:0]overlay=(main_w-overlay_w)/2:(main_h-overlay_h)/2[vout]"
-map [vout] -c:v libx264 -crf 22 -movflags faststart output_videoscale过滤器将调整视频(第一输入)到1280x720。您可以找到更多的缩放选项这里。overlay滤波器将水印图像定位在缩放视频的中心位置。libx264用于mp4输出。crf值,直到它得到可满足的输出为止。您所提到的错误在这里不显示为您的命令。希望您的FFmpeg版本有一些问题。包括完整的未切割控制台输出,以进一步分析它。
希望这能有所帮助!
https://stackoverflow.com/questions/31655202
复制相似问题