![如何解决在 DVD 播放机上播放隔行扫描视频时抖动/闪烁的问题?(使用原始素材混合自己的 DVD)](https://linux22.com/image/1210659/%E5%A6%82%E4%BD%95%E8%A7%A3%E5%86%B3%E5%9C%A8%20DVD%20%E6%92%AD%E6%94%BE%E6%9C%BA%E4%B8%8A%E6%92%AD%E6%94%BE%E9%9A%94%E8%A1%8C%E6%89%AB%E6%8F%8F%E8%A7%86%E9%A2%91%E6%97%B6%E6%8A%96%E5%8A%A8%2F%E9%97%AA%E7%83%81%E7%9A%84%E9%97%AE%E9%A2%98%EF%BC%9F%EF%BC%88%E4%BD%BF%E7%94%A8%E5%8E%9F%E5%A7%8B%E7%B4%A0%E6%9D%90%E6%B7%B7%E5%90%88%E8%87%AA%E5%B7%B1%E7%9A%84%20DVD%EF%BC%89.png)
我正在尝试制作 DVD,但最终的 DVD 在独立 DVD 播放器上播放时会出现抖动。但在 PC 上播放似乎没问题。
我认为问题可能与渲染最终输出时的隔行设置有关,但我会概述我所遵循的整个编辑过程,以防我在其他地方犯了错误。
大部分镜头来自索尼便携式摄像机(一种迷你 DVD 摄像机),因此质量不是很好。录制时设置为“高质量”(哈哈)和 16:9 宽高比。
我直接将文件从迷你 DVD 复制到硬盘上,然后将其导入 Cinelerra。在 Cinelerra 中,我将格式设置为 25fps、720x576、RGBA-8bit、16:9、隔行扫描底场优先。
当我完成编辑后,我为每个视频轨道添加了一个场到帧效果(先设置为底部)。
我分别渲染音频和视频:
音频:AC3,128kbps
视频:YUV4MPEG steam,
视频管道设置:
ffmpeg -f yuv4mpegpipe -i - -y -target dvd -flags +ilme+ildct mpeg2video %
Cinelerra 在渲染过程中经常崩溃,因此我将其设置为在每个标签处生成一个新的视频文件,并在成功渲染每个文件后使用 cat 将它们组合起来。组合完成后,我使用 mencoder 重新索引它们:
mencoder -forceidx -oac copy -ovc copy merged.m2v -o mergedReIndexed.m2v
我使用 ffmpeg 合并音频和视频文件:
ffmpeg -i AudioFile.ac3 -i VideoFile.m2v -target dvd -flags +ilme+ildct FinalMovie.mpg
然后我用 spumux 构建菜单并用 dvdauthor 创建 DVD 文件系统,最后我将其写入 dvd-r 中,如下所示:
nice -n -20 growisofs -dvd-compat -speed=2 -Z /dev/dvd -dvd-video -V VIDEO ./ && eject /dev/dvd
最初,当我这样做时,DVD 闪烁得厉害,因此根据指南中的建议,我在 cinelerra 中添加了场到帧效果。现在它不再“闪烁”,但在有大量运动时会变得“抖动”,尤其是当摄像机移动时,整个背景都会移动。
这是我迄今为止尝试过的:
- 从 cinelerra 视频渲染管道中删除了“mpeg2video”。
- 从渲染管道中删除了 +ilme。
- 从渲染管道中删除了 +ildct。
- 从渲染音频/视频重新加入命令中删除了 +ilme。
- 从渲染音频/视频重新加入命令中删除了 +ildct。
- 向渲染管道添加了 -alt。
- 添加了 -alt 来渲染音频/视频重新加入命令。
- 尝试了 Cinelerra 中使用和不使用帧到场效果。
以及上述内容的各种组合。
我也尝试过这个:将 Cinelerra fps 改为 50,使用场到帧(而不是帧到场),渲染到中间 QTforlinux jpeg 视频流,将其重新导入 Cinelerra,添加帧到场效果,然后将该输出渲染为正常(@25fps),但我仍然遇到同样的问题。
有人遇到过这种“抖动”播放吗?有人能给出一些关于如何修复它的建议吗?(就像我说的,它在 PC 上播放正常,但在我试过的任何独立播放器上都播放不正常)
答案1
休息过后我又回过头来想出了解决方案。我想把它贴出来,以防其他人遇到类似的问题。
解决方案是将所有视频以 50fps 的速度预渲染,并将场到帧效果设置为优先字段。(使用尽可能无损的编解码器进行预渲染,如果有磁盘空间,最好使用 RAW)。此预渲染将每个隔行扫描场提取到单独的帧(因此为 50fps)
完成预渲染后,创建一个具有正常 PAL 设置的新项目(25fps 隔行扫描底部优先)然后将预渲染重新导入 Cinelerra(检查它是否正确检测到 50fps)。现在使用设置为的帧到场效果进行最终渲染底部优先。这会从预渲染中取出两个单独的帧,并将它们重新组合成 1 个隔行扫描场。现在应该可以正确地隔行扫描以进行 DVD 播放。
执行此操作时要记住的是:捕获以匹配您的源并编码以匹配您的格式。我捕获的索尼 miniDVD 是顶部优先隔行扫描。我在编辑时忽略了这一点,因此直接渲染到底部优先隔行扫描会搞砸一切。
有一个很好的描述此处将框架添加到字段. 请查看下面有关在不进行去隔行的情况下处理隔行素材的信息。