运行此命令:
ffmpeg -i xr.mp4 -tune ya zu.mp4
Run Code Online (Sandbox Code Playgroud)
揭示了x264 和 FFmpeg的可能调谐值:
[libx264 @ 0000000002167100] 可能的曲调:电影动画颗粒静止图像 psnr ssim
快速解码零延迟
但是,我找不到解释这些值实际作用的参考资料。
该FFmpeg的维基说,最好的压缩率是预先设定的“veryslow”。
但是当我用我的视频尝试它时,预设veryfast在我的情况下提供了最好的压缩。
以下是我的样本的输出:
ultrafastffmpeg -y -threads 1 -i "D:\Video\PresentTest\Safari_Dolby_Digital_Plus.m2ts.mp4" -c:v libx264 -preset ultrafast -c:a aac -max_muxing_queue_size 1024 "D:\Video\PresentTest\Safari_Dolby_Digital_Plus-ultrafast.mp4"
frame= 2822
fps= 65
q=-1.0
Lsize=
239118kB
time=00:01:34.18
bitrate=20797.6kbits/s
speed=2.16x
Run Code Online (Sandbox Code Playgroud)
superfastffmpeg -y -threads 1 -i "D:\Video\PresentTest\Safari_Dolby_Digital_Plus.m2ts.mp4" -c:v libx264 -preset superfast -c:a aac -max_muxing_queue_size 1024 "D:\Video\PresentTest\Safari_Dolby_Digital_Plus-superfast.mp4"
frame= 2822
fps= 63
q=-1.0
Lsize= 150252kB
time=00:01:34.18
bitrate=13068.3kbits/s
speed=2.09x
Run Code Online (Sandbox Code Playgroud)
veryfastffmpeg -y -threads 1 -i "D:\Video\PresentTest\Safari_Dolby_Digital_Plus.m2ts.mp4" -c:v libx264 -preset veryfast -c:a aac -max_muxing_queue_size 1024 "D:\Video\PresentTest\Safari_Dolby_Digital_Plus-veryfast.mp4"
frame= 2822 …Run Code Online (Sandbox Code Playgroud) 我的笔记本电脑无法处理 10 位 H.265 / HEVC 视频,所以我想将它们转换为 10 位 H.264。我如何使用 ffmpeg 来做到这一点,质量损失最少?以及如何将 10 位 H.265 转换为 8 位 H.265?
有谁知道在多台计算机上(通过网络)编码 x264 视频以提高编码 FPS 的当前有效解决方案?
Brownie 指出跨平台和开源,但大家都知道,我通常使用 Windows。
我听说过的程序,以及为什么我认为它们不适合的程序:
虽然我并不绝对需要一个正在积极开发的程序,但我想要一个支持两次编码并与新的(er)x264 构建一起使用的程序。
附加信息:到目前为止,自从两年多前首次发布此问题以来,我已经提供(并授予!)两个单独的悬赏,但我仍然没有找到解决此问题的方法。我正在寻找的基本上是一个简单的程序,它允许我使用通过 LAN 连接的多台计算机的处理能力对 x264 视频进行编码。此外,如果它与新的(er)x264 构建一起工作并支持两遍编码,那就太好了。
如果在任何时候有人有更新的答案,或对此问题的新解决方案,请发布它,我们会予以考虑。
2016 更新:
在我在计算机/机器视觉方面的大量工作经验之后,我开始意识到与大量共享数据/内存相关的开销及其带来的潜在瓶颈,可能会超过潜在的好处。
虽然我仍然很想找到可以让我利用多个设备的空闲计算能力的东西,但就目前而言,如果您需要改进/实时编码,现代基于 GPGPU 的编码器是一种更好的方法。这是大多数基于云的视频编码平台所提供的(如果您使用 SaaS 或云计算,这是另一种选择),尽管规模更大。
我有一部电影 (m4v/h.264/AAC) 可以在我的 Mac 上正常播放,但我最近发现它无法在我的 Apple TV3 上播放。查看此电影文件的属性后,我发现它的配置文件为 High@4.1,但 Apple TV3 仅支持 High@4.0。我认为使此视频不兼容的唯一属性是最大视频比特率,所有其他属性看起来都在 High@4.0 中受支持。
如何使用 ffmpeg 将此视频降级到 High@4.0?
或者我是否必须更改使此视频变为 4.1 而不是 4.0 的实际属性(最大比特率)?我担心如果我只是更改比特率,尽管文件将与 High@4.0 兼容,但它仍会被“标记”为 High@4.1,因此仍然无法在我的 Apple TV3 上播放。
发行组 LOL 在对《吸血鬼日记》中的发行进行编码方面做得非常出色(在其他节目中,例如《我如何遇见你的母亲》,比特率更高,因此似乎并不那么有效)。
每个约 45 分钟的 MP4 文件大约 200 MB,考虑到惊人的质量。
I just wonder what settings and what software they use. I've tried to get info from these files using MediaInfo, then use the settings in HandBrake, but I didn't really succeed.
Could anyone please help me? I don't have much knowledge about encoding/compressing.
在完全按照他们自己的 wiki 说明进行配置后,我遇到了 FFmpeg 问题,我收到以下信息:
ffmpeg -stats -i uncompressed.video.mkv -codec x264 -preset veryslow -pass 2 -an compressed.video.mkv
[Removed for readability]
Unknown encoder 'x264'
Run Code Online (Sandbox Code Playgroud)
尝试使用libx264而不是相同的方法会x264导致类似的错误:
Invalid encoder type 'libx264'
Run Code Online (Sandbox Code Playgroud)
所以我跑了:
~$ ffmpeg -codecs | grep x264
Run Code Online (Sandbox Code Playgroud)
并得到:
ffmpeg version 2.6.git Copyright (c) 2000-2015 the FFmpeg developers
built with gcc 4.7 (Debian 4.7.2-5)
configuration: --prefix=/home/hindenpeter/ffmpeg_build --extra-cflags="-I/home/hindenpeter/ffmpeg_build/include --extra-ldflags=-L/home/hindenpeter/ffmpeg_build/lib --bindir=/home/hindenpeter/bin --enable-gpl --enable-libass --enable-libfdk-aac --enable-libfreetype --enable-libmp3lame --enable-libopus --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libx264 --enable-nonfree
libavutil 54. 20.100 / 54. 20.100
libavcodec …Run Code Online (Sandbox Code Playgroud) 我正在尝试将视频转码为 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?
我知道一些技术可以让编码器自由地为相对复杂的序列提高比特率,但这会导致与更典型场景所需的比特率相比整体比特率膨胀。
是否有可能放宽编码器的界限,在预定义的间隔内给它更多的比特率自由度?
我想将高质量非隔行输入视频转换为质量较低但可分发范围更广的 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 …