我想知道使用Intel Quick Sync的最佳(快速)视频编码软件和将视频转码为 h.264 的软件。
我查看了 Cyberlink 的 Media Espresso,但它没有很多功能。我什至不能用这个在视频上放一个标志。仅此一项功能就真的很有帮助。
但没有什么比我的 i7 2600k 的编码速度更接近了。
video h.264 software-rec hardware-acceleration video-encoding
我有一个带有 AVC 视频轨道和 MP3(非 AAC)音频轨道的 MP4 文件。
Video: MPEG4 Video (H264) 1920x1080 [Video]
Audio: MPEG Audio 44100Hz stereo 192kbps [Audio]
Run Code Online (Sandbox Code Playgroud)
虽然某些视频播放器能够按预期播放带有音频的视频,但 Adobe Premiere Pro CS5.5 无法识别它,因为它希望 MP4 文件具有 AAC 编码的音轨(按照标准)。
现在我正在使用一种解决方法,我使用 MKV Toolnix 从 MP4 文件中提取音轨(使用中间 MKA 文件)然后我只是手动将音频文件同步到 Premiere 中的 MP4 文件(因为它显示了 MP4文件为静音)。
有没有办法将 MP3 曲目转换为 AAC 并将其保存在 MP4 文件中?如果这是不可能的,是否有命令行工具可以将带有 AAC 音轨的 MP4 重新编码为另一个文件?我在这里运行 Windows。
语境:
假设我有两个视频文件——从 DVD 或 DV 磁带中翻录。它们都是 MKV 或 AVI 格式,一些标准容器或其他格式,但被单独翻录,具有不同的编码器、不同的比特率和不同的分辨率。视频是不同的镜头,但有一段镜头是两个轨道共有的(一段具有完全相同的源材料,但正如我所说,每个文件的编码器/分辨率/比特率都不同)。
例如:文件 1 有一个从 00:10 到 00:20 的片段,它与文件 2 中从 10:00 到 10:10 的片段具有相同的源材料。
问题:
是否有一个程序可以将两个文件都输入到其中(如有必要,我可以先将它们重新混合成不同的容器格式),它甚至可以粗略地告诉我视频相同片段的起点和终点?即,我可以将上述两个示例文件提供给它,它会告诉我素材来自同一来源的两个范围?
理想情况下,我想要一些可以让我调整相似性检测的“置信度”的东西,这样我就可以提供它,比如说,一个非常低分辨率、低比特率的文件和一个高清文件,并放松它的信心它仍然在这些不同质量的输入之间检测到相似的片段。
这个问题的答案很可能是“没有大量工作就不可能”,但我想无论如何我都会问。
我知道 HandBrake 应用程序使用 HandBrakeCLI 命令行应用程序来完成实际的编码工作
从我在 HandBrake UI 上设置的所有编码设置中,如何检索 HandBrakeCLI 使用的确切参数?(在 MacOS 上)
(例如,我选中了“Web Optimized”复选框:它是如何在 CLI 参数中翻译的?)
从最新版本(4.0)开始,ffmpeg 支持AV1编解码器。VLC也应该能够播放 AV1 视频。
不幸的是,我还没有找到将现有视频编码为 AV1 的语法。我从命令行使用 ffmpeg,例如:
ffmpeg -i input.mp4 output.avi
Run Code Online (Sandbox Code Playgroud)
但是 AV1 需要哪些选项?
在对整个文件进行编码之前,我想用我的编码测试一些东西。有没有办法让我制作一个示例文件(30 秒长或类似的文件),我可以使用不同的应用程序(而不仅仅是内置的示例预览)进行分析。
顺便说一下,我正在使用 OSX 手刹。或者,问题可以表述为:“handbrake 在创建短样本视频文件后将它们存储在哪里?”
我使用以下代码将 10mbps 高质量 1280x720 H264 mp4 转码为较低质量的 H264 mp4,并在视频上添加我们的徽标水印。
ffmpeg.exe -i test.mp4 -i watermark.png -filter_complex overlay="(main_w)-(overlay_w):(main_h)-(overlay_h)" -c:v libx264 -profile:v main -preset Slow -b: v 400k -r 30 -c:a libvo_aacenc -b:a 128k -s 1280x720 -movflags faststart -f mp4 "test-done.mp4"
这些设置效果很好,经过大量调整以获得此代码,它可以生成清晰的视频,用于高动作、静态、许多不同的颜色等。
问题在于,在视频的前几秒钟,流非常阻塞。然后,大约 3-5 秒后,流会自行“纠正”,视频变得清晰。通过将预设更改为“veryslow”来减慢渲染时间只能略微改善前几秒的速度,但会显着增加渲染时间。
我怎样才能告诉 ffmpeg 更加关注视频的开头?我是否必须采用 2 遍编码?我不想将渲染时间增加近一倍,因为只有视频的前几秒有这个问题。有人可以修改我的代码以在文件开头提供更好的编码吗?
作为参考,原始的 10mbps mp4 是由 Premiere 5.0 编码的,并且在开始时没有块效应。这是我仅在转码后使用 ffmpeg 亲眼目睹的情况。
我有一个演示文稿的高清视频,所以它主要由静止图像组成。这是一个 50 分钟、200MB 的 MP4 文件,从 YouTube 下载。
有没有办法利用内容的静态特性来进一步压缩它?
有可能——事实上,很容易——在不重新编码的情况下旋转 JPEG 文件,这意味着在这个过程中不会引入额外的质量损失。
对于类似的有损视频格式(MPG、MP4),是否也有同样的可能?
如果我在 x264 (FFmpeg) 中使用低于 17/18 的 CRF(恒定速率因子)值,我会获得任何视觉上的好处吗?除了大小之外还会有什么不同吗?
CRF 17/18 在视觉上无损。
CRF 0 表示帧的每个像素都由它自己的数据决定。CRF 17/18 意味着,如果它们相同,则该帧的每个像素要么由其自己的数据确定,要么根据前一帧确定。
所以在视觉上两者都是一样的。那么较低值的CRF(0-16)编码有什么好处呢?
我已经测试了大部分可用的 CRF 值(包括 CRF 0)。我使用“CRF 0”编码了一部 1080P 蓝光电影。输出最终比蓝光源大 2.5 倍 (110GB)。
据我所知,我没有看到使用低于 CRF17/18 的 CRF 值的理由。而且我无法在任何地方找到证明使用较低 CRF 值的理由。那么较低的 CRF 值有什么好处呢?
CRF 17/18 中的代数损失会更多,而较低 CRF 值编码的代数损失会更少吗?
video-encoding ×10
ffmpeg ×4
video ×4
h.264 ×2
handbrake ×2
macos ×2
aac ×1
compression ×1
diff ×1
mp4 ×1
software-rec ×1
video-codecs ×1
x264 ×1