【问题标题】:Ubuntu reduce video size with ffmepg and change formatUbuntu 使用 ffmpeg 减小视频大小并更改格式
【发布时间】:2015-07-27 14:00:25
【问题描述】:

我想为所选视频添加水印、减少重量、调整大小和更改格式。 我还需要尽可能保持高质量。

现在我有什么:

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

【问题讨论】:

  • 您需要为最后一个命令包含 complete 控制台输出。
  • @LordNeckbeard 在上面添加了它。

标签: ubuntu video ffmpeg resize watermark


【解决方案1】:

当您尝试减小文件大小时,您无法保留输入源的原始质量。您仍然可以调整属性以完成此操作,直到人眼无法识别质量差异。好吧,要回答您的问题,您可以在一行命令中添加水印、减小文件大小(降低质量)和重新调整输入视频的大小。

为此,您需要使用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_video
  • scale 过滤器会将视频(第一个输入)调整为 1280x720。您可以找到更多缩放选项here
  • overlay 滤镜会将水印图像定位在缩放视频的中心。
  • 您必须选择合适的codec 进行编码,这里libx264 用于mp4 输出。
  • 您还可以调整crf 的值,直到产生令人满意的输出。

您提到的错误不会出现在您的命令中。希望您的 FFmpeg 版本有问题。包括完整的未删减控制台,以便进一步分析。

希望这会有所帮助!

【讨论】:

  • 这看起来是个不错的答案,但我现在收到错误 Unrecognized option 'crf'.
  • pastebin中包含此命令的完整未剪切控制台输出
【解决方案2】:

ffmpeg 配置行缺少 --enable-libx264,因此您的构建不支持使用 libx264 进行编码。

您的选择:

【讨论】:

  • 但是当我尝试安装它时,它说它已经安装了 - pastebin.com/Di6RNL0a
  • @ArnasPečelis 安装 libx264-dev 不会有任何帮助。我已经列出了三个可以解决您的问题的选项。
  • 所以我应该重新安装ffmepg?
  • @ArnasPečelis 如果要使用该编码器,则需要使用支持 libx264 的构建。列出的三个选项中的任何一个都应该提供。
猜你喜欢
  • 2011-05-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-09-22
  • 2019-12-28
  • 2023-03-11
  • 1970-01-01
  • 2015-07-03
相关资源
最近更新 更多