标签: video-encoding

使用 ffmpeg 去噪(减少胶片颗粒)

我有大量电影,我想重新编码以减小尺寸并提高图像质量。大量是老旧的黑白电影,颗粒感很强,但即使是 1980 年代的影片也可能有过多的颗粒感。这在美学上令人不快,并且还会增加文件大小。

ffmpeg 有大量可用的过滤器,而且很难知道从哪里开始。有人可以推荐一个具有合理值的过滤器吗?

我目前的设置:

ffmpeg -i in.mkv -c:v libx265 -c:a copy -crf 28 out.mkv
Run Code Online (Sandbox Code Playgroud)

ffmpeg video-conversion video-encoding

8
推荐指数
1
解决办法
7084
查看次数

将视频从 VOB 转换为 AVI 同时使文件更小

如何将视频从一种格式(在本例中为.vob)转换为另一种格式,例如.avi

我有一张 4.2 GB 的 DVD,想将其转换为较小的文件大小和不同格式的 .avi 文件,大约 700 MB。

我正在使用 Windows XP 机器。

video windows-xp conversion video-encoding

7
推荐指数
2
解决办法
1780
查看次数

手刹:在编码期间对视频进行下采样时如何保持清晰度?

我有一堆 1280x720 分辨率的视频,但我真的不需要那么高分辨率,所以我想重新编码并将它们调整为 852x480 以节省一些空间,但我注意到手刹编码结果变成了一个有点模糊的视频当我只是调整窗口大小时,它会在我的 VLC 视频播放器上显示。

所以,我正在寻找一种完全像 VLC 那样调整视频大小的方法,因为这实际上提供了比普通调整大小算法或调整大小+锐化算法更好的质量,我什至在手刹中找不到。但是,有没有办法使用 Handbrake 锐化视频?

video handbrake video-encoding

7
推荐指数
1
解决办法
2万
查看次数

FFmpeg 中的 HuffYUV 和 ffvhuff 编解码器有什么区别?

这样做ffmpeg -codecs | grep -i huffyuv表明我的 FFmpeg 版本支持三个不同版本的 HuffYUV 无损视频编解码器:

DEVI.S ffvhuff              Huffyuv FFmpeg variant
DEVI.S huffyuv              HuffYUV
D.VI.S hymt                 HuffYUV MT
Run Code Online (Sandbox Code Playgroud)

我知道 HuffYUV MT 是多线程的,我的构建似乎只支持解码它,但是标准编HuffYUV解码器和ffvhuffFFmpeg 版本之间有什么区别?这有记录在任何地方吗?

video codec ffmpeg video-conversion video-encoding

7
推荐指数
1
解决办法
4924
查看次数

在 FFmpeg 中使用 CRF 并使用 x264 设置最大比特率

我正在尝试将视频转码为 H.264/MP4。我正在使用该crf = 20选项,但根据要求,我还想将最大比特率限制为 3 MBit/s。

我试图通过x264opts这样的方式来欺骗它

-x264opts crf=20:vbv-bufsize=14000:vbv-maxrate=3000:keyint=40
Run Code Online (Sandbox Code Playgroud)

这是正确的方法吗?这可以完成吗?还是我只能使用恒定比特率而不使用 CRF?

ffmpeg x264 video-encoding

6
推荐指数
1
解决办法
3万
查看次数

ffmpeg 编码和解码 h264 文件的最低要求配置

我正在尝试以最低要求编译 ffmpeg,以便使用 h264 进行编码/解码。

到目前为止我的命令行配置是:

./configure --disable-yasm --disable-everything --enable-encoder=libx264 --enable-encoder=libfaac --enable-decoder=h264 --enable-muxer=h264 --enable-demuxer=h264 --enable-parser=h264 --enable-protocol=file
Run Code Online (Sandbox Code Playgroud)

编译后,我尝试这样做:

./ffmpeg -i ~/Dropbox/TestFile.mov -vcodec libx264 test.mp4
Run Code Online (Sandbox Code Playgroud)

但我收到错误:

ffmpeg version N-58081-g2925571 Copyright (c) 2000-2013 the FFmpeg developers
  built on Nov 14 2013 15:49:58 with Apple LLVM version 5.0 (clang-500.2.76) (based on LLVM 3.3svn)
  configuration: --disable-yasm --disable-everything --enable-encoder=libx264 --enable-encoder=libfaac --enable-decoder=h264 --enable-muxer=h264 --enable-demuxer=h264 --enable-parser=h264 --enable-protocol=file
  libavutil      52. 52.100 / 52. 52.100
  libavcodec     55. 43.100 / 55. 43.100
  libavformat    55. 21.100 / 55. 21.100
  libavdevice    55.  5.100 / …
Run Code Online (Sandbox Code Playgroud)

video h.264 ffmpeg video-encoding

6
推荐指数
1
解决办法
5815
查看次数

x264 是否支持基于时间的速率控制约束?

我知道一些技术可以让编码器自由地为相对复杂的序列提高比特率,但这会导致与更典型场景所需的比特率相比整体比特率膨胀。

是否有可能放宽编码器的界限,在预定义的间隔内给它更多的比特率自由度?

x264 video-encoding

6
推荐指数
1
解决办法
583
查看次数

使用 ffmpeg 设置 libx265 的配置文件级别

我正在尝试使用 ffmpeg 将 libx265 的配置文件级别设置为 mainstillpicture。但我似乎不能这样做。我基本上是在尝试将每一帧编码为帧内(仅空间编码)而没有时间编码。

我试过以下命令

ffmpeg -f rawvideo -vcodec rawvideo -s 3840x2160 -r 30 -pix_fmt yuv420p -i <input_filename> -c:v libx265 -b:v 45000k -preset veryslow -profile:v mainstillpicture <output_filename>
Run Code Online (Sandbox Code Playgroud)

ffmpeg -f rawvideo -vcodec rawvideo -s 3840x2160 -r 30 -pix_fmt yuv420p -i <input_filename> -c:v libx265 -b:v 45000k -preset veryslow -profile:v 3 <output_filename>
Run Code Online (Sandbox Code Playgroud)

ffmpeg video-encoding h.265

6
推荐指数
1
解决办法
1万
查看次数

ffmpeg:如何创建隔行扫描的 h.264 视频?

我想将高质量非隔行输入视频转换为质量较低但可分发范围更广的 H.264/MP4 格式。输出应该有一些限制 - 特别是:它应该是交错的

我尝试了以下命令,其中mandelbrot是高质量输入的同义词:

ffmpeg -hide_banner \
    -t 10 -y \
    -f lavfi \
    -i anullsrc=r=48k:cl=stereo \
    -f lavfi \
    -i mandelbrot=r=50:size=1920x1080 \
    -vf 'interlace=scan=tff:lowpass=complex,format=yuv420p' \
    -codec:a aac \
    -b:a 128k \
    -aac_coder twoloop \
    -codec:v libx264 \
    -preset veryfast \
    -tune animation \
    -profile:v high \
    -crf 35 \
    -level 5.2 \
    -x264opts interlaced=1 \
    -shortest \
    mandelbrot.mp4
Run Code Online (Sandbox Code Playgroud)

我的 ffmpeg 是ffmpeg version 3.4.2-2.

但是,我不确定命令行是否正确。

  • libx264本身不检测隔行输入。我必须插入-x264opts interlaced=1.
  • 其他常见问题解答讲述了一些关于-flags …

h.264 ffmpeg x264 video-encoding

6
推荐指数
2
解决办法
3万
查看次数

在 FFMPEG / Python 中获取视频中的 I 帧列表

我试图从给定视频中选择 10 个帧,可能具有最高的多样性和场景。我想尝试各种选择场景,但好处是,I-frame本质上意味着场景变化的概念!所以我想获得 I 帧。但也许有很多 I 帧,所以我可能必须对它们进行采样。

如何在 FFMpeg 或 Python 中获取视频中所有 I 帧的frame_number 列表?我想使用列表仅选择其中 10 个并将它们另存为 PNG/JPEG。

video python ffmpeg iframe video-encoding

6
推荐指数
2
解决办法
1万
查看次数