Amazon Best VPN GoSearch

OnWorks 网站图标

mjpegtools - 云端在线

通过 Ubuntu Online、Fedora Online、Windows 在线模拟器或 MAC OS 在线模拟器在 OnWorks 免费托管服务提供商中运行 mjpegtools

这是 mjpegtools 命令,可以使用我们的多个免费在线工作站之一在 OnWorks 免费托管服务提供商中运行,例如 Ubuntu Online、Fedora Online、Windows 在线模拟器或 MAC OS 在线模拟器

程序:

您的姓名


mjpegtools - MJPEG 工具简介

介绍

我把这些东西写下来,因为我有很多纸上有笔记。 这应该是
对长期收集的知识进行某种总结。 安德鲁·史蒂文斯
帮助了解编码和 VCD 知识和提示。

Mjpegtools 是一组可以进行录制、播放、编辑和最终 MPEG 的程序
Linux下的音视频压缩。

虽然主要用于基于 Zoran 的捕获/播放板
ZR36067 MJPEG编解码芯片mjpegtools可轻松处理和压缩MJPEG视频
使用简单的帧缓冲设备使用 xawtv 捕获的流。

工具的 HOWTO 旨在介绍 MJPEG 工具和
创建 MPEG 1/2 视频。 VCD、SVCD 和 DVD 以及现有 mpeg 的转码
流。

有关程序的更多信息,请阅读相应的手册页。

Achtung es gibt auch eine deutsche 版本 bei:

还有此文本的联机帮助页。 如果已安装,您可以使用“man mjpegtools”阅读它。
我们还有一个信息版本,您应该可以使用信息阅读它

此文本的文本版本可通过 cvs 获得。 你应该用 tarball 或者
预编译包(RPM 和 deb)。

在下图中,您可以看到录制视频、剪切视频时的典型工作流程
之后并对其进行编码。 在图片中,您还可以看到与其他程序的连接。
这些部分是灰色的。 蓝色部分可以使用 mjpegtools 完成。

视频编码工作流程

未分类的有用提示列表

您必须编译并安装 mjpeg_play 包,为此请阅读 README &
INSTALL.real 遵循配置脚本中的提示。 如果不想编译
它,您可以在 Sourceforge 下载 mjpeg .RPM 或 .DEB 包,或者如果可用,请使用
您的发行版附带的那个。

在 scripts/ 目录中有一个脚本。 这个脚本向你展示了一种方式
可以办到。 它还创建(在某些情况下)看起来不错的视频。
只有通过调整参数才能获得更好的视频。

如果您使用 2.4 系列的 Linux 内核,您通常必须加载驱动程序
用于 Buz 或 DC10 或 LML33 卡。 您必须运行作为选项提供的更新脚本
您拥有的卡的名称。 该脚本通常在 /usr/src/driver-zoran/ 中。 这
内核 2.4.4 以下的 zoran 内核驱动程序不起作用。 你必须使用驱动程序
可从:

在 2.6. Linux内核是包含的zoran卡的驱动程序,您只需要制作
确保它加载正确。 如果您有一台 x64 机器和一个比
2.6.30 我们很高兴听到您可以从基于 zoran 的卡进行录音。 我是
不确定这种组合是否有效。

Matrox Marvel 卡的驱动程序也可以使用,更多信息如下:

如果您在基于 P6 的计算机(PPro、P-II、P-III、P-4、Athlon、Duron)上编译工具
然后永远不要尝试让它们在基于 P5 的计算机上运行(Pentium、Pentium-MMX、K6、K6-x、
Cyrix、Via、Winchip)。 你会得到一条“非法指令”,程序将无法运行。 那
较新的 CPU 也是如此。 如果您使用特定的优化,请注意它们。

如果 lav2yuv 转储核心,那么一个可能的原因是没有包含 dv 支持。 启用它
确保系统上安装了 libdv。 如果您正在使用,这将是必要的
数码相机(或模拟到 DV 转换器,例如 Canopus ADVC100 并将
dv avi 格式转成MPEG 格式。

启动 xawtv 看是否有图片。 如果您想使用录制的硬件回放
你必须启动 xawtv(任何电视应用程序都可以)一次才能播放流
背部。 您还应该检查声卡中混音器的设置。 如果您使用 v4l2
你应该试试mplayer看图片

如果您在 Linux 以外的平台上编译工具,则并非所有工具都可以使用。
例如,OS/X 系统上的 Mjpegtools 将没有 V4L (video4linux) 功能。

当 lavrec 运行时,切勿尝试停止或启动 TV 应用程序。 如果您开始或停止
电视应用程序 lavrec 将停止录制,否则您的计算机可能会“冻结”。 这是一个
v4l (video4linux) 的问题。

这个问题用 v4l2 解决了。 如果您使用 v4l2,您可以录制视频并停止和
随时启动电视应用程序。 但是 v4l2 目前(7 年 2003 月 XNUMX 日)仅
如果您使用 CVS 驱动程序,则支持基于 zoran 的卡(BUZ、DC10、DC10+、LML33)
来自 mjpeg.sf.net 标记为 ZORAN_VIDEODEV_2。 而这个驱动程序只适用于
2.4.20 内核和 2.5.* 开发内核。

关于您在我们开始之前获得的数据的最后一件事:

音频:(采样率 * 通道 * 位大小)/(8 * 1024)
CD 质量:(44100 采样/秒 * 2 通道 * 16 位)/(8 * 1024)=172,2 kB/秒

8 * 1024 将值从位/秒转换为千字节/秒

视频:(宽*高*帧率*质量)/(200*1024)
PAL 半尺寸:(352 * 288 * 25 * 80) / (200 * 1024) = 990 kB/秒
PAL 全尺寸:(720 * 576 * 25 * 80) / (200 * 1024) = 4050 kB/秒
NTSC HALF 大小:(352 * 240 * 30 * 80) / (200 * 1024) = 990 kB/秒
NTSC 全尺寸:(720 * 480 * 30 * 80) / (200 * 1024) = 4050 kB/秒

1024 将字节转换为千字节。 并非每张卡都可以记录提到的大小。 这
例如,Buz 和 Marvel G400 在使用 -d 720 时只能记录 576x1 的大小,
DC10 使用 -d 384 时记录的大小为 288x2。

当您添加音频和视频数据速率时,这就是您的硬盘必须能够写入的数据
不断流,否则你会丢帧。

如果你想玩 --mjpeg 缓冲区大小. 请记住,该值应至少为
大到足以容纳一帧。 一帧的尺寸为:(宽*高*质量
) / (200 * 1024) = kB 如果缓冲区太小,速率计算不匹配
可能会发生更多和缓冲区溢出。 最大值为 512kB。

此处解释了视频的工作原理和视频类型之间的区别:

您还可以在那里找到如何为 VCD/SVCD 创建 MPEG 静止图像。

可以在此处找到对 DV(数字视频)的详细描述:

图书 we 发现 有用的


英文写法:

Charles Poyton 的数字视频和高清电视 (ISBN 1-55860-792-7)

Peter Symes 的数字视频压缩 (ISBN 0-07-142487-3)

Keith Jack 揭秘视频 (ISBN 1-878707-56-6)

用德语写的:

鲁道夫·梅厄斯尔通信技术 (ISBN 3-7785-2374-0)

Professionelle Videotechnik - 模拟和数字 Grundlagen von U. Schmidt (ISBN)
3-540-43974-9)

U. Schmidt 的数字电影和视频技术 (ISBN 3-446-21827-0)

如果您知道其他关于此的非常好的书,请写信给我们!

录制影片

拉夫雷克 例子


使用 lavrec 录制看起来像这样:

> 拉夫雷克 -f a -i P -d 2 记录.avi

现在应该开始录音了

-F A

使用 AVI 作为输出格式,

-iP

使用 PAL 格式的 SVHS-In 作为输入源,

-d 2

图片尺寸为一半尺寸 (352x288)

记录.avi

创建的文件的名称。

按 Ctrl-C 完成录音(在德语键盘上:Strg-C)。 有时使用
-f A 而不是 -f a 可能有必要

其他例子:

> 拉夫雷克 -f q -i n -d 1 -q 80 -s -l 80 -R l -U 记录.avi

现在应该开始录音了

-fq

使用 Quicktime 作为输出格式,

-在

使用 NTSC 格式的复合输入,

-d 1

以全尺寸 (640x480) 录制图片

-q 80

将质量设置为捕获图像的 80%

-s

使用立体声模式(默认单声道)

-l 80

在录音期间将录音电平设置为最大值的 80%

-Rl

将录音源设置为 Line-In

-U

有了这个 lavrec 使用 read 而不是 mmap 进行记录,如果您的声音
卡不支持 mmap 进行录制。

设置混音器不适用于所有声卡。 如果你用 2 个不同的
设置并且两个录音都同样响亮,您应该使用混音器设置混音器
程序。 之后你应该使用 -l -1 使用 lavrec 录制时的选项

图像的大小取决于您使用的卡。 在全尺寸 (-d 1) 你得到这些
图像尺寸:BUZ 和 LML33:720x576,DC10 和 DC30:768x576

其他例子:

> 拉夫雷克 -w -f a -i S -d 2 -l -1 记录%02d.avi

应该开始录音了

-w

等待用户确认开始(按回车键)

-F A

使用 AVI 作为输出格式,

-是

使用 SECAM SVHS-Input(SECAM 复合录音也是可能的:-is)

-d 2

图片的大小是一半大小

-l -1

不要触摸混音器设置

记录%02d.avi

这里 lavrec 在文件达到大小后创建第一个名为 record00.avi 的文件
1.6GB(录制大约 20 分钟后)它会启动一个名为 record01.avi 的新序列,然后
依此类推,直到录音停止或磁盘已满。 随着 1.9.0 的发布
版本 mjpegtools 能够处理大于 2GB 的 AVI 文件。 所以这个选项是存在的
为了兼容性。

其他例子:

> 拉夫雷克 -f a -i t -q 80 -d 2 -C 欧洲西部:SE20 测试.avi

现在应该开始录音了

-F A

使用 AVI 作为输出格式,

-它

使用调谐器输入,

-q 80

将质量设置为捕获图像的 80%

-d 2

图片尺寸为一半尺寸 (352x288)

-C

选择电视频道,对应的-it和-iT(视频源:TV tuner)即可
目前用于 Marvel G200/G400 和带有 Rainbow 的 Matrox Millenium G200/G400
Runner 扩展(BTTV-Support 正在建设中)。 有关如何制作的更多信息
这些卡的电视调谐器部分可以工作,请参阅 Marvel/Linux 项目:

最后一个例子:

> 拉夫雷克 -f a -i p -g 352x288 -q 80 -s -l 70 -R l --软件编码 测试03.avi

这两个新选项是 -g 352x288, 设置要录制的视频的大小
运用 --软件编码,这样可以对记录的图像进行软件编码。 和
此选项您还可以从基于 bttv 的卡进行录制。 处理器负载高。 这
选项仅适用于通用 video4linux 卡(例如基于 brooktree-848/878
卡片),它不适用于基于 zoran 的卡片。

其他 了解 提示


所有 lavtools 都接受像 file*.avi 这样的文件描述,因此您不必为每个文件命名
但这是一种可能性。

注意:手册页中描述了更多选项,但是通过此您应该能够获得
开始。

这里有一些关于合理设置的提示。 将 -d 80 的质量提高到 2% 或更高
捕获。 低至 40% 的全分辨率在视觉上似乎是“完美的”。 -d 2 已经
比 VHS 视频更好(很多*!)。 对于漫威,您不应将质量设置为高于
以全尺寸 (-d 50) 录制时为 1。 如果您使用更高的设置(-q 60),它会更多
很可能你会遇到问题。 较高的设置会导致掉帧。 如果
你的目标是制作 VCD,那么完全录制就没什么收获了
分辨率,因为您需要稍后将分辨率降低到 -d 2 分辨率。

您可以使用明显的 -d 1/2/4 以外的其他尺寸进行录制。 您可以在以下情况下使用组合
您使用一半的水平尺寸和完整的垂直尺寸:-d 21。这将记录为 NTSC
尺寸为 352x480。 如果您想创建 SVCD,这会有所帮助,缩放 352 Pixles put
到 480 对眼睛来说不是那么可见,就像您会使用其他组合 -d 12 一样。
在您拥有全水平分辨率和半垂直分辨率的情况下,此版本将具有
NTSC 的 720x288 尺寸

信息 关于 这些因素包括原料奶的可用性以及达到必要粉末质量水平所需的工艺。 普遍 拉夫雷克 产量 了解


0.06.14:22 int: 00040 lst:0 ins:0 del:0 ae:0 td1=0.014 td2=0.029

第一部分显示了 lavrec 正在录制的时间。 整数: 两帧之间的间隔。
清单: 丢失的帧数。 插件 删除: 是插入和删除的帧数
用于同步校正。 ae: 音频错误的数量。 td1 td2 是音频/视频时间-
差异。

(int) 框架 间隔 应该在 33 (NTSC) 或 40 (PAL/SECAM) 左右。 如果是很
不同,你可能会得到一个糟糕的录音和/或许多丢失的帧

(一) 丢失 是坏的,意味着在此期间某些事情不能很好地工作
录制(高清太慢,CPU 使用率太高,...)尝试以更大的抽取率录制
并且可能质量较低。

(插入, 删除) 插入 OR 删除 其中正常→同步。 如果您丢失了很多并且
插入的帧,你对你的机器要求太多了。 使用要求较低的选项或
尝试不同的声卡。

(a) 音频 错误 永远都不好。 应该是 0

(td1, TD2) 差异始终在 0 附近浮动,除非禁用同步校正
(--synchronization!=2, 2 是默认值)。

笔记 关于 “交错 部分 秩序 - 什么 能够 go 形成一种 固定 它”


首先,交错场序错误是什么意思?

mjpegtools 图像处理链是面向帧的。 因为是视频素材
被捕获的每一帧由一个顶场(第 0、2、4 等行)和一个
底场(第 1、3、5 行等)。

字段可能会发生三件坏事

这实际上只是 PAL 视频中的电影的一个问题,其中每个电影帧都作为一个
对字段。 这些可以首先发送到顶部或底部,遗憾的是它并不总是
相同,但底部优先似乎很常见。 如果您使用错误的字段顺序进行捕获
(你开始用底部而不是顶部捕捉每一帧,反之亦然)帧
电影在流中的*之间*帧被分割。 在电视上播放,其中每个
字段自行显示,这是无害的。 回放的字段顺序是
与广播的字段序列完全相同。 不幸的是,回放
一个帧的两个字段同时出现的计算机显示器看起来*可怕*,因为
每一帧都有效地混合了两个时间间隔 1/25 秒的时刻。

这两个字段可以简单地以某种方式交换,以便顶部被视为底部和底部
视为顶级。 结果是颤抖和“切片”。 这似乎偶尔会发生
捕获卡中的硬件故障。

在捕获/处理每帧中两个场的时间*顺序*的某个地方可以
以某种方式被贴错标签。 这并不好,因为这意味着当播放最终需要
在采样图像之后放置一个包含较早采样图像的字段
之后。 结果是奇怪的“颤抖”效果。

我怎样才能知道我是否有这些问题之一?

这可能很难发现。 如果您在播放过程中出现神秘闪烁的图片,请尝试
强制使用反向字段顺序编码片段(见下文)。 如果事情让你有所改善
知道问题是什么以及解决方案是什么!

这两个字段可以简单地以某种方式交换,以便顶部被视为底部和底部
视为顶级。 结果是颤抖和“切片”。 这似乎偶尔会发生
捕获卡中的硬件故障。 这个问题看起来像这样:

隔行问题

在捕获/处理每帧中两个场的时间*顺序*的某个地方可以
以某种方式被贴错标签。 这并不好,因为这意味着当播放最终需要
在采样图像之后放置一个包含较早采样图像的字段
之后。 结果是奇怪的“颤抖”效果。

如果您使用 glav 或 lavplay,请确保您也使用 -F/--闪烁 选项。 这个
禁用一些可以改善图片的东西。

如果你想看视频也可以使用yuvplay:

> 拉夫2yuv ... 尤夫玩

如果存在场序问题,您应该使用 yuvplay 来查看。

你怎么解决它?

为了解决这个问题,需要通过帧“移动”字段。 使用 yuvcorrect 的 -T
BOTT_FORWARD/TOP_FORWARD 改变字段分配给帧的方式。 你可以了解一下
通过查看调试的前几行,MJPEG 文件的当前场顺序
输出: > 拉夫2yuv -v 2 the_mjpeg_文件 > 的/ dev / null的 或重新录制交换 -f a -F
A 或相反亦然。

这也不算太糟。 使用一个工具,只需一秒钟交换顶部和底部字段
时间。 yuvcorrect 可以使用 -T 线路开关.

很容易修复。 要么告诉某个工具在某个地方重新标记字段,要么只是告诉
播放器以交换的顺序播放(后者可以通过告诉“间接”完成
编码为 mpeg2enc 时 反转 这些因素包括原料奶的可用性以及达到必要粉末质量水平所需的工艺。 (-z b│t) 告诉解码器哪个字段
顺序使用。

In 秩序 确定 究竟 什么 类型 of 交错 问题 有, 需要
提取 一些 这些因素包括原料奶的可用性以及达到必要粉末质量水平所需的工艺。 记录 采取 a at 他们:

> mkdir pnm
> lav2yuv -f 40 video.avi │ y4mtoppm │ pnmsplit - pnm/image%d.pnm
> rm pnm/图像?.pnm
> cd pnm
> 十五

首先,我们创建一个目录来存储图像。 lav2yuv -f 40 只写
前 40 帧到标准输出。 程序 y4mtoppm 将帧转换为 pnm 图像和
pnmsplit 将图片分成两帧,将图片中的图片拆分为两张单张图片。 然后我们
删除前 10 个图像,因为 pnmsplit 不支持 %0xd 编号。 没有
数字前导零,文件将按错误的顺序排序,导致
混乱的播放。

使用您喜欢的图形程序(例如 xv)查看图片。 由于每张图片
只包含两个字段中的一个,它们将显示为垂直缩放。 如果你看
图片你应该看电影慢慢推进。

如果您有一部电影,您应该总是看到 2 张几乎相同的图片(因为
电影帧被分成两个场播放)一个接一个。 你可以观察
如果在暂停电影时有梳状效果,这很容易,因为两个场都将
同时显示。 属于在一起的两张图片应该有一个均匀的
number 和后面的奇数。 所以如果你看一下图片:4和5差不多
相同,5 和 6 不同(有运动),6 和 7 相同,7 和 8 不同,....

要解决此问题,您必须使用 yuvcorrect -T 底部转发 or TOP_FORWARD 转发。 您可以
也有字段顺序(顶部/底部)仍然错误的问题。 你可能不得不
第二次使用 yuvcorrect -M 线路开关,或使用 mpeg2enc -z (b│t) 选项。

查看您是否猜对了再次提取帧并使用重新排序它们
yuv正确:

> 拉夫2yuv -f 40 视频.avi 正确的 -T OPTION Y4MTOPPM 分裂 - pnm/图像%d.pnm

其中“选项”是您认为可以纠正问题的内容。 这是用于材料转换的
从电影。 直接为电视制作的材料如下所述。

嘿,NTSC 电影怎么样?

电影在 NTSC 中使用“3:2”下拉播放,这意味着一半的捕获帧
包含来自 1 个电影帧的场和来自 2 帧的半场。 要撤消此效果
您需要使用 yuvkineco 的高效 MPEG 编码。

如果你有一个像电视摄像机这样的隔行源,你的帧由两个场组成
记录在不同的时间点。 在这里发现问题更难。 你
需要找到从左到右水平移动的东西。 当你提取
领域,事物应该从左到右以小步移动,而不是一大步
前进,后退小步,大前进,小后退……你必须使用相同的
提到的选项来纠正问题。

不要期望字段顺序总是相同的(顶部或底部优先)它可能会改变
在通道之间,在薄膜之间,它甚至可能在薄膜内发生变化。 如果它
更改常量,您可能必须使用 mpeg2enc -I 1 甚至 -I 2 进行编码。

如果您以全尺寸录制,您只会遇到这个问题!!!

从其他来源创建视频

以下是有关如何从其他来源创建视频的一些提示和说明,例如
图像和其他视频类型。

您可能也有兴趣查看 of 现有 MPEG-2的
部分。

创造 视频 图片


您可以使用 jpeg2yuv 从单独的 JPEG 图像创建 yuv 流。 此流已发送
到标准输出,以便可以将其保存到文件中,直接编码为 mpeg 视频
使用 mpeg2enc 或用于其他任何事情。

可以像这样保存 yuv 流:

> jpeg2yuv格式 -f 25 -I p -j 图片%05d.jpg > 结果.yuv

创建包含 25 FPS yuv 视频数据的文件 result.yuv。 -f 选项是
用于设置帧率。 注意 image%05d.jpg 意味着 jpeg 文件被命名
image00000.jpg、image00001.jpg 等。 (05 表示五位数,04 表示四位数,
等)需要 -I p 来指定隔行扫描。 你必须检查你是哪种类型
有。 如果您没有隔行扫描,请选择 p 进行渐进

如果您想直接从 jpeg 图像编码 mpeg 视频而不保存单独的
视频文件类型:

> jpeg2yuv格式 -f 25 -I p -j 图片%05d.jpg mpeg2enc -o mpeg文件.m1v

与上述相同,但保存的是 mpeg 视频而不是 yuv 视频。 见 mpeg2enc
有关如何使用 mpeg2enc 的详细信息的部分。

您还可以在 jpeg2yuv 和 mpeg2enc 之间使用 yuvscaler。 如果你想创建一个 SVCD
从您的源图像:

> jpeg2yuv格式 -f 25 -I p -j 图片%05d.jpg 尤夫斯卡勒 -O SVCD mpeg2enc -f 4 -o 视频.m2v

您可以使用 -b 选项来设置要开始的图像编号。 的数量
要处理的图像可以用 -n 数字指定。 例如,如果您的第一个
图像是 image01.jpg 而不是 image00.jpg 并且您只想处理 60 张图像
类型:

>jpeg2yuv -b 1 -f 25 -I p -n 60 -j 图像*.jpg 尤夫2拉夫 -o 流_无_声音.avi

将声音添加到流中,然后:

> 拉瓦德瓦夫 流_无_声音.avi 声音.wav 带声音的流.avi

对于 ppm 输入,有 ppmtoy4m util。 应该有一个 ppmtoy4m 的联机帮助页
咨询其他信息。

要创建 mpeg 视频,请尝试以下操作:

>猫 *.ppm ppm玩具4m -o 75 -n 60 -F 25:1 mpeg2enc -o 输出.m1v

cat 每个 *.ppm 文件到 ppmtoy4m。 前 75 帧(图片)被忽略,接下来
60 由 mpeg2enc 编码为 output.m1v。 您可以在没有 -o 和 -n 选项的情况下运行它。 这
-F 选项设置帧率,默认为 NTSC (30000:1001),对于 PAL 你必须使用 -F
25:1。

如果有到 ppm 的转换器,也可以使用其他图片格式。

> ls *.tga 参数 -n1 总浓度 ppm玩具4m 尤夫玩

将文件名列表 (ls *.tga) 提供给 xargs,它使用一个 (-n
1) 每次调用的参数,并将输出提供给 ppmtoy4m。 这次的视频只有
显示在屏幕上。 仅当转换器 (tgatoppm) 只能运行时才需要 xargs
一次在一个图像上。

如果您想使用 ImageMagick 的“转换”工具(瑞士军刀),请尝试:

>转换 *.gif ppm:- ppm玩具4m 尤夫玩

这意味着获取目录中的所有“.jpg”图像,转换为 PPM 格式,管道到标准输出,
然后到 ppmtoy4m 转换为 y4m ....

解码 - mplayer的


使用 mplayer 解码流是一种很好的方式,可以将 mplayer 可以的每个视频
播放您可以使用 mjpegtools 编辑或编码为 mpeg 的内容。 这种方法有
已使用 mplayer 1.0rc2 进行测试,应适用于较新版本

>mkfifo 流.yuv

>猫 流.yuv 尤夫2拉夫 -o mjpeg_wo.avi &

>播放器 -没有声音 -noframedrop -vo yuv4mpeg 任何文件.mpg

>播放器 -vo -至 pcm:文件=任意文件.wav 任何文件.mpg

现在你有一个没有声音的 mjpeg 编码的 AVI 的例子。 声音会在
任何文件.wav。 您可以选择是否要将声音添加到 AVI 拉瓦德瓦夫
编码前编辑文件。

您也可以使用 mjpeg 工具中的 yuv2lav、mpeg2enc 或任何其他工具来代替
您的命令也可能如下所示:

> 流.yuv 雨声 尤夫斯卡勒 -O SVCD mpeg2enc -f 4 -o 视频_svcd.m2v

将 wav 文件放入 mp2编码 将其编码为 MP2 音频。 这 -vo yuv4mpeg 选项效果很好
与 mplayer 文档中提到的其他输入类型。

解码 MPEG-2的 - mpeg2dec


您可以使用创建 yuv 流的修补过的 mpeg2dec 版本解码 mpeg2 流。
您可以将其通过管道传输到任何其他 mjpegtools 程序中。 或者您使用 mpeg2dec 版本
直接来自 libmpeg2 项目并使用输出模式 pgmppipe。 随着 pgm玩具4m
程序,您可以将该 pgm 输出转换回 yuv。

如果你问自己为什么有补丁版本和 pgmtoy4m。 答案是
yuv 输出的补丁多次发送给 libmpeg2 开发人员,但从未
包括。 现在我们有两种方法可以解决这个问题。 解码看起来像这样:

> mpeg2dec -s -o 管道 任意VOB pgm玩具4m -i t -a 10:11 -r 30000:1001 mpeg2enc -f 8
新视频.m2v

您可以按照 of 现有 MPEG-2的 部分。

其他 知道


如果您有来自 DVB 卡或卫星接收器的传输流,您可能想要
解复用或切割它们。 一个很好的工具是 项目 X 可从:

之后您可以像处理任何 mpeg 电影或
解复用的音频视频。 所以 of 现有 MPEG-2的 本文件的部分
会感兴趣。检查录制是否成功

您可以使用 lavplay 或 glav。 重要信息: 决不 尝试运行 xawtv 和 lavplay 或 glav
硬件播放,不行。 对于软件播放,它工作正常。

>lavplay -p S 记录.avi

您应该会看到录制的视频并听到声音。 但是视频的解码是
由 CPU 完成,这会给系统带来沉重的负担。 这种方法的优点
你不需要xawtv。

更好的方法:

>lavplay -p H 记录.avi

视频由硬件解码和播放。 系统负载非常低。 这会
使用硬件而不是软件解码在屏幕上播放。

您也可以尝试:

> 拉皮 -p C 记录.avi

这将使用硬件播放它,但播放到卡的视频输出。

> GLAV 记录.avi

和 lavplay 一样,但你有一个很好的 GUI。 glav 和 lavplay 的选项是
几乎一样。 不使用选项 使用软件播放。

使用硬件回放生成复合信号和 SVHS OUT 信号,以便您可以
在电视上观看电影。

> 拉夫2yuv 测试文件 尤夫玩

是另一种获得无声视频的方法。 您可以在编码中使用 yuvplay 一次
命令。 当您在编码命令中使用 yuvplay 时,您会看到过滤器所做的更改
和缩放。 您还可以将其用于慢动作调试。

注意: 加载驱动程序后,您必须启动 xawtv 来设置 lavplay 和
glav 没有,但 HW-Playback 需要它们。 别忘了关闭 xawtv !!

NOTE2: 不要尝试将 glav 一个 lavplay 发送到后台,无法正常工作!!!

NOTE3: SECAM 播放现在 (12.3.2001) 仅以单色播放,但录制和编码
做得对。

NOTE4:不良电缆可能会降低图像质量。 通常你看不到这个,但是当
有文字你可能会注意到一个小阴影。 当你看到这个你应该改变
电缆。

未来 即将到来: 有一个工具可以让录制视频变得非常简单:Linux Studio。 你
可以在以下网址下载:

编辑视频

编辑 - GLAV


大多数任务可以通过 glav 轻松完成。 像删除视频的一部分,剪切粘贴和
复制部分视频。

glav 按钮说明

应该保存修改,因为 glav 不会破坏性地编辑视频。 这
意味着原始视频保持不变,修改保留在一个额外的
可使用文本编辑器读取的“编辑列表”文件。 这些文件可以用作输入到
其他 lavtools 程序,例如 lav2wav、lav2yuv、lavtrans。

如果要切断流的开头和结尾,请标记开头和结尾
和,并使用“保存选择”按钮。 编辑列表文件然后用作输入
厕所。 如果您想将录制的视频分割成更小的部分,只需选择
部分,然后将每个部分保存到不同的列表文件。

您现在可以看到视频和声音的所有更改,无需重新计算
任何东西。

如果您想获得已编辑视频的“破坏性”版本,请使用:

> 拉夫特朗 -o 短版本.avi -f a 编辑列表.eli

-o

指定输出名称

-F A

指定输出格式(例如 AVI)

编辑列表.eli

是描述修改的列表文件。 您生成列表文件
glav 中的“全部保存”或“保存选择”按钮。

统一 视频


> 拉夫特朗 -o 流.qt -f q 记录_1.avi 记录_2.avi ... 记录_n.avi

-o

指定输出文件名

-fq

指定输出格式,在本例中为 quicktime

这通常是不需要的。 请记住,2Bit 上有 32GB 的文件大小限制
具有较旧 glibc 的系统。 这些天通常不是问题

分开 声音


> 拉夫特朗 -o 声音.wav -f w 流.avi

创建一个带有流声音的 wav 文件.avi 如果你想删除可能需要
噪音,或者如果您想将其转换为另一种声音格式。

另一种分割声音的方法是:

> 拉夫2瓦夫 编辑列表.eli >声音.wav

分开 图片


> 目录 .jpg; 拉夫特朗 -o jpg/图像%05d.jpg -f i 流.avi

首先创建目录“jpg”。 然后 lavtrans 将在 jpg 中创建单个 JPG 图像
stream.avi 文件中的目录。 这些文件将被命名为:image00000.jpg,
图片00001.jpg ....

创建的 jpg 图像包含整个图片。 但是如果你以全尺寸录制
图像隔行存储。 通常图片浏览器只显示第一个字段
.jpg 文件。

如果您想将图像保存在单个文件中,您可以使用该版本

> 拉夫2yuv -f 1 流.avi Y4MTOPPM -L >文件.pnm

如果要将字段拆分为单个文件,请使用:

> 拉夫2yuv -f 5 ../流.avi Y4MTOPPM 分裂 - 图像%d.pnm

如果您需要示例图像并且不想玩弄抓取图像,这可能会很有趣
单个图像。

创造 电影 转换


多亏了 Philipp Zabel 的 lavpipe,我们现在可以在电影或
结合多层电影。

Philipp 写了这个关于如何进行转换的 HOWTO:

让我们假设这个场景很简单:我们有两个输入视频 intro.avi 和epilogue.mov 和
想让 intro.avi 以一秒的持续时间过渡到epilogue.mov(即
PAL 为 25 帧或 NTSC 为 30 帧)。

Intro.avi 和 epiloque.mov 必须具有相同的格式(相同的帧速率和
解决)。 在本例中,它们都是 352x288 PAL 文件。 intro.avi 包含 250
帧和epilogue.mov 是1000 帧长。

因此我们的输出文件将包含:

intro.avi 的前 225 帧

包含 intro.avi 的最后 25 帧和前 25 帧的 25 帧过渡
结尾.mov

Epilogue.mov 的最后 975 帧

我们可以通过调用获取 intro.avi 的最后 25 帧:

>lav2yuv -o 225 -f 25 简介

-o 255,偏移量,告诉 lav2yuv 从第 225 帧开始,然后
-f 25 使它从那里输出 25 帧。

另一种可能性(因为负偏移是从末尾开始计算的)是:

> 拉夫2yuv -o -25 简介

Epilogue.mov 的前 25 帧:

> 拉夫2yuv -f 25 结尾.mov

-o 默认偏移为零

但是我们需要将这两个流与 lavpipe 结合起来。 所以电话是:

> 吹管 ”lav2yuv -o 255 -f 25 介绍.avi” ”lav2yuv -f 25 结尾.mov”

它的输出是一个原始的 yuv 流,可以输入 transist.flt。

transist.flt 需要被告知过渡的持续时间和不透明度
转换开始和结束时的第二个流:

-o 编号

开始时第二个输入的不透明度 [0-255]

-O 数字

末尾第二个输入的不透明度 [0-255]

-d 编号

以帧为单位的过渡持续时间

不透明度为 0 表示第二个流是完全透明的(只有流一个
可见),在 255 流二是完全不透明的。

在我们的例子中,正确的调用(从流 1 到流 2 的转换)应该是:

> 晶体管 -o 0 -O 255 -d 25

-s 和 -n 参数等同于 lav2yuv 的 -o 和 -f 参数,仅需要
如果有人出于任何原因只想渲染过渡的一部分。 请
请注意,这只会影响加权计算 - 没有任何输入是真正的
跳过。 如果您使用跳过参数(例如 -s 30),您还需要跳过
lav30yuv (-o 2) 中的前 30 帧以获得预期结果。 如果你没有
了解这一点,请向作者发送电子邮件,或者干脆忽略 -s 和 -n。 整体
程序最终将自动化。

现在我们想用 yuv2lav 压缩 yuv 流:

> 尤夫2拉夫 -f a -q 80 -o 过渡.avi

从 stdin 读取 yuv 流并输出带有压缩 jpeg 帧的 avi 文件 (-fa)
质量80。

现在我们有了创建过渡的完整命令:

> 管道 ”lav2yuv -o 255 -f 25 介绍.avi” ”lav2yuv -f 25 结尾.mov” 晶体管 -o 0
-O 255 -d 25 尤夫2拉夫 -f a -q 80 -o 过渡.avi

生成的视频可以编写为 LAV 编辑列表(纯文本文件),其中包含
以下几行:

LAV 编辑列表
朋友
3
简介
过渡.avi
结尾.mov
0 0 224
1 0 24
2 25 999

该文件可以输入 glav 或 lavplay,或者您可以使用 lav2yuv 将其通过管道传输到 mpeg2enc
或者使用 lavtrans 或 lav2yuv│yuv2lav 将所有内容合并为一个单独的 mjpeg 文件。

将流转换为 MPEG 或 DIVx 视频

首先是编码过程中的一些一般描述,然后是
一些常用的输出格式的详细说明。

如果您想要一个命令对话到 mpeg 视频,请在脚本中尝试 lav2mpeg
目录

对于 mpeg2 输出,使用 lav1mpeg 脚本的编码如下所示:

> lav2mpeg -a 160 -b 2110 -d 320x240 -m mpeg1 -o 输出.mpg 文件.eli

将创建视频比特率为 1kBit/sec 和音频比特率为 2110 kBit/sec 的 mpeg160

分辨率为 320x240

或者生成 mpeg2 输出:

拉夫2mpeg -o mpeg2 -O 输出.mpg 文件.eli

将以与输入分辨率相同的分辨率创建具有默认比特率的 mpeg2

然而,通过尝试各种选项并找出哪些选项,可以获得更好的结果。
最适合你的。 这些将在下面讨论。

用更多的例子和更详细地解释了 MPEG-1 电影的创作
因为大多数可用于 MPEG-1 的东西也适用于其他输出
格式

要创建 VCD/SVCD Stills 序列(mpeg6enc 中的 -f 7 / -f 2),您应该看到:

在 VCD/SVCD 中创建菜单需要静止序列。 菜单的创建是
在 vcdimager 的 doku 中描述。

创造 声音


MPEG-1 视频需要 MPEG-1-Layer2 (MP2) 声音文件。 对于 MPEG-2 视频,您可以使用
MPEG-1-Layer2 和 MPEG1-Layer3 (MP3)。 MP3 音频不是正式有效的音频格式,但
许多 VCD 播放器都会认出它。 MP3 音频对 DVD 无效。 你应该坚持
到 MP2,因为许多 MPEG-2 播放器(例如 DVD 播放器,通常是 Windows
版本也有很大的问题)不能播放 MPEG2-Video 和 MP3
的声音。

mp2enc 是 MP2 音频编码器。 toolame 编码器还能够生成 MP2 文件。
Toolame 比 mp2enc 快得多,但 toolame 不执行重采样(48000 到 44100
样本/秒)。 许多硬件播放器将使用 48000 速率音频播放 SVCD。 MP3用
我确定你有一个编码器。

计费示例:

> 拉夫2瓦夫 流.avi mp2编码 -o 声音.mp2

这将使用 224kBit/sec 比特率和示例从 stream.avi 中创建一个 mpeg 声音文件
频率为 48kHz。 如果您的音频文件具有 44.1kHz mp2enc 重新采样音频以创建 48kHz
输出。 如果您想要 44.1kHz 的输出采样率,您必须将 -r 44100 添加到 mp2enc
命令

例如:

> 声音.wav mp2编码 -v 2 -V -o 声音.mp2

这将创建一个 VCD(-V 比特率=224,立体声,采样率:44100)兼容的输出
wav 文件。

使用 -v 2 mp2enc 更详细,编码时您会看到音频的秒数
已经编码。

您可以使用以下命令测试输出:

> 播放器 声音.mp2

注意: plaympeg 是适用于 Linux 的 MPEG-1 播放器,您也可以使用其他播放器。 对于音频
测试您也可以使用 mpg123。 对于音频和视频播放都有通用的
像 VLC mplayer 等播放器。

转换 电影


创建 MPEG-1 和 MPEG-2 视频。

通常,您创建的第一个视频并不是最好的。 为了获得最佳质量/尺寸,您需要
玩比特率,搜索半径,噪声过滤器.... mpeg2enc 的选项是
在 mpeg2enc 的联机帮助页中描述。

计费示例:

拉夫2yuv 流.avi 流1.avi mpeg2enc -o 视频.m1v

这将创建一个默认恒定比特率为 1152kBit/sec 的视频文件。 这是
如果您想创建 VCD,则需要比特率。 您可以指定更多文件,也可以使用
占位符 %nd。 在哪里 n 描述数字。 默认情况下 mpeg2enc 假设你想要
将非隔行视频编码为 Mpeg-1。 如果你想编码一个全尺寸的视频
交错上述命令将失败。

计费示例:

> 拉夫2yuv 流i%02d.avi mpeg2enc -b 1500 -r 16 -o 视频.m1v

mpeg2enc 创建一个比特率为 1500kBit/s 的视频,使用的搜索半径为 16。那
意味着当试图在编码器的帧之间找到相似的 16*16 像素宏块时
从每个块的当前位置查找最多 16 个像素。 它看起来是原来的两倍
当比较相隔 1 帧的帧时,依此类推。 合理的值为 16 或 24。默认
是 16,所以在这里添加选项是没有用的。 较低的值 (0, 8),改进编码
速度,但质量较低(更明显的伪影),而值较高(24、32)
以速度为代价提高质量。 与流%02d.avi 的文件描述
处理与此模式匹配的所有文件 00, 01....

缩放

使用 yuvscaler 现在还可以在编码之前缩放视频。 这很有用
适用于使用 DC10 或 DC10+ 卡的用户,该卡以 -d 1 768x576 或 -d 2 384x288 捕获
(PAL/SECAM) 或 -d 1 640x480 (NTSC)。

通过阅读联机帮助页或运行以下命令,您可以获得所有命令的完整描述:

>yuvscaler -h

计费示例:

> 拉夫2yuv 流.avi 尤夫斯卡勒 -O VCD mpeg2enc -o 视频.m1v

这会将流缩放到 VCD 大小,对于 PAL/SECAM 是 352x288,对于 NTSC 是
352x240。 缩放后的 yuvstream 被编码为 MPEG-1。

它还可以将 SVCD 缩放到 480x480 (NTSC) 或 480x576 (PAL/SECAM):

> 拉夫2yuv 流.avi 尤夫斯卡勒 -O SVCD -M 双三次 mpeg2enc -o 视频.m1v

mode 关键字 (-M) 强制 yuvscaler 使用更高质量的双三次算法
缩小而不是默认的重采样算法。 升级总是使用
双三次算法。

计费示例:

> 拉夫2yuv 流.avi 尤夫斯卡勒 -I 使用_450x340+20+30 -O 尺寸_320x200 mpeg2enc -o
视频.m1v

这里我们只使用一部分输入并指定非标准输出分辨率。

注意: yuvscaler 可以设置活动区域,并使用以下方法将其他所有内容设置为黑色:-I
ACTIVE_WidthxHeight+WidthOffset+HeightOffset 高质量缩放:y4mscaler

y4mscaler 已经存在一段时间了。 但在很长一段时间内是额外的
你需要编译的工具。 有一个全面的手册页解释了所有的细节,
网站上还有很多有用的信息:

一个独特的功能是它能够改变子采样和 Choma 模式。 你呢
可以选择缩放内核,这取决于可以提供很多帮助的来源。

计费示例:

> 原始文件 Y4MSCALER -O 推断=剪辑 -O 预设=DVD -O sar=PAL_Wide mpeg2enc 视频.m1v

在这个例子中 y4mscaler 将获取输入流并将其缩放到相应的 PAL
尺寸。 sar 选项告诉缩放是宽格式 (16:9)。 这 推断=剪辑 选项将
告诉 y4mscaler 它可以剪掉顶部和底部的条以将其缩放到结果
大小。

计费示例:

> mpeg2dec -o 管道 豪华版.m2v pgm玩具4m -x 420JPEG -r 25:1 -i t Y4MSCALER -I
萨尔=64:36 -I 活跃=344x476+100+48 -O 预设=DVD mpeg2enc -f 8 视频.m1v

对于 y4mscaler 来说,这是一项更重要的工作。 我们有一个奇怪的 544x576 的 PAL MPEG 源格式
宽屏幕 16:9 格式的像素,使原始 4:3 周围出现黑条
图片。 此命令将图像缩放到原始 4:3 大小,并且只需要
有趣的中心。 SAR 是样本纵横比在某处丢失,因此我们指定
它在一开始。 所以它被再次指定,而不是告诉 y4mscaller 活动大小
用于放大的图片。 active 关键字在以下方面的处理方式不同
y4mscaler 和 yuvscaler。 DVD 是您想要的输出格式的预设。 来自
流参数 y4mscaler 知道它是 PAL 流和输出参数。 如果
如果您想要 16:9 的输出,则必须使用关键字:DVD_WIDE。

测试由以下人员完成:

> mplayer的 视频.m1v

注意:这些只是示例。 您可以使用更多选项。 您可以使用其中的大部分
一起以尽可能低的比特率创建高质量的视频。

NOTE2:您设置的搜索半径越高,转化所需的时间就越长。 一般来说
使用的选项越多,编码所需的时间就越长。

NOTE3:MPEG-1 并非设计为 VBR(可变比特率流)!! 所以如果你编码
使用 -q 15 mpeg2enc 将最大比特率 -b 设置为 1152。如果你想要一个 VBR MPEG-1,你有
将 -b 设置得非常高(2500)。

NOTE4:也许你应该给出比 video.mpg 更好的名字。 一个好主意是使用选项
作为文件名的一部分(例如: video_b1500_r16_41_21.m1v)。 另一种可能性是
调用所有第 2 层音频文件“.mp2”所有 MPEG-1 视频文件“.m1v”和所有
MPEG-2 视频文件“.m2v” 很容易看到发生了什么。 为多路复用保留 .mpg
MPEG-1/2 流。

这些因素包括原料奶的可用性以及达到必要粉末质量水平所需的工艺。 一起


计费示例:

> 复合体 声音.mp2 视频.m1v -o 我的视频.m1v

将 sound.mp2 和 video.m1v 流放在一起到 my_video.mpg

现在您可以使用您喜欢的 MPEG 播放器并观看它。 所有玩家(例如 gtv)
基于 SMPEG 库的 MPEG-1 工作良好。 其他播放器(可以播放 MPEG-2 作为
以及 MPEG-1 电影)是:xmovie、xine 和 MPlayer VLC,仅举几例。

注意: 如果您已指定 -S mpeg2enc mplex 的选项将自动拆分
如果输出文件名中有一个 %d 的文件(看起来像:-o test%d.mpg)
以这种方式生成的是单独的独立 MPEG 流!

NOTE2: xine 可能在通过视频搜索时遇到问题。 mplayer 有问题
使用可变比特率流“向后/向前寻找”,因为它在
file 恒定比特率流的数据量。 这个数额可能很大
超过 10 秒或一分钟(这些是 mplayer 每次按
方向键)。 所以不要怀疑它是否比你向前或向后寻求更多的时间
期望。

请按需咨询 比特率 多路复用: 请记住告诉 mplex 您将 VBR(-V 选项)编码为
以及 mpeg2enc(参见示例脚本)。 它*可以*自动检测但它不起作用
然而。 您应该告诉 mplex 视频缓冲区大小至少与您指定的一样大
到“mpeg2enc” MPEG-1 的合理数字可能是 2800Kbps 的上限比特率,一个
质量上限(量化底限)为 6,缓冲区大小为 400K。

计费示例:

> 复合体 -V -r 1740 音频.mp2 视频_vbr.m1v -o vbr_stream.mpg

在这里,我们多路复用可变比特率流。 mplex 是一个单通道多路复用器,所以它
无法检测最大比特率,我们必须指定它。 输出的数据速率
流是:音频比特率 + 峰值视频比特率 + 1-2% 的复合信息。 如果音频 (-b
224) 是 224kBit,视频是 1500kBit(用 -b 1500 -q 9 编码)然后我们有 1724 *
1.01 或大约 1740kBit。

计费示例:

> 播放器 我的视频.mpg

or

> mplayer的 我的视频.mpg

创造 MPEG-1的 视频


对于 MPEG-1 视频,您可以使用 MP2 音频和 MPEG-1 视频。 MPEG-1 电影的一个子集是
VCD的。 您可以对视频使用 VBR(可变比特率)(尽管 VCD 几乎总是
使用 CBR 视频)但音频必须是 CBR(恒定比特率)。

MPEG-1 推荐用于 PAL 的 352x288 和 NTSC 的 352x240 的图像尺寸
更大尺寸的 MPEG-2 是更好的选择。 MPEG-1 没有确切的分辨率
优于MPEG-2。 只是为了确保安全,MPEG-1 无法处理隔行源。 如果你
视频是隔行扫描的,您需要 MPEG-2 才能对其进行正确编码。

MPEG-1 音频创建示例

> 拉夫2瓦夫 编辑列表.eli mp2编码 -r 44100 -o 声音.mp2

您可以通过告诉 mp2enc 使用较低的比特率(-b 选项)如 160 或
192 kBit/s。 -r 44100 选项强制 mp2enc 生成 44.1kHz 音频文件。

> 拉夫2瓦夫 编辑列表.eli mp2编码 -b 128 -m -o 声音.mp2

这将创建比特率为 128kBit/sec 比特率的单声道输出。 这次的输入是
使用 glav 创建的编辑列表文件(可以有任何名称),因此您在 glav 中所做的所有更改都是
直接处理后交给mp2enc。 您不必创建编辑过的流
使用 lavtrans 使其正确转换。

MPEG-1 视频创建示例

> 拉夫2yuv 编辑列表.eli mpeg2enc -b 2000 -r 24 -q 6 -o 视频.m1v

mpeg2enc 创建比特率为 2000kBit/s(或 2048000Bit/s)但 -q 标志的视频
激活可变比特率和 6 的品质因数。它使用 24 的搜索半径。

说明:当在没有“q”标志的情况下调用 mpeg2enc 时,它会创建“constantbit-rate”
MPEG 流。 哪里(粗略地说)压缩强度(因此图片
质量)进行调整,以确保平均每帧视频具有准确的
指定的位数。 广播和广播需要这种恒定比特率的流
适用于使用慢速固定速度播放器硬件的低成本硬件,如 DVD 和 VCD 播放器。

显然,这是相当低效的,因为这意味着不活动的场景会消耗掉可能
最好“花”在快速变化的场景上。 设置 'q' 标志告诉 mpeg2enc
生成可变比特率流。 对于此类流,指定的比特率只是
最大允许。 'q' 参数指定最小压缩程度
通过指定如何准确记录图片信息来应用。 通常'q'是
设置以便安静的场景使用小于指定的最大值(大约 6 或 8),但是
快速移动的场景仍然会受到比特率限制。 出于存档目的,设置一个
永远不会达到的足够高的最大比特率(例如 10Mbps)和 2 或 3 的 aq 是
合理的选择。

计费示例:

> 拉夫2yuv 流.avi 尤夫斯卡勒 -I ACTIVE_352x240+0+24 mpeg2enc -b 1152 -r 16 -4 1 -2 1
-o 视频.m1v

通常在顶部和底部有近乎黑色的边框和大量带宽
用于您不喜欢的东西。 yuvscaler -I ACTIVE 选项设置所有
不在所描述的区域中为黑色,但图像大小 (352x288) 未更改。 那么你
有一个真正的黑色边框,编码器只使用几位来编码它们。 你还在
与本例中的 VCD 格式兼容。 确定活动窗口提取
一帧到 jpeg 格式:

> 拉夫特朗 -f i -i 100 -o 框架.jpg 测试.avi

比使用您最喜欢的图形显示程序来确定活动大小。 -4 1 和
-2 1 选项可将质量提高约 10%,但转换速度较慢。

大小为 352x288(录制时使用 -d 1 选项创建的 2/2 PAL 大小)
所需的比特率是/应该在 1000 - 1500kBit/s 之间。 对于 NTSC,它应该是关于
相同,因为图像较小,但每秒帧数比 PAL 多。

无论如何,主要因素是原始质量和过滤程度。 贫穷的
质量未过滤的材料通常需要更高的速率以避免可见的伪影。 如果
您想在压缩广播材料时降低比特率而不产生烦人的伪像
您应该尝试一种(或多种)噪声过滤器。

计费示例:

> 拉夫2yuv 流.avi mpeg2enc -b 1500 -n s -g 6 -G 20 -P -o 视频.m1v

这里的 stream.avi 将被编码为:

-b 1500

1500kBit/sec 的比特率

-ns

输入视频规范被强制为 SECAM

-P

这可确保相邻 I/P 帧之间出现 2 个 B 帧。 几种常见的MPEG-1
解码器无法处理 I/P 帧之间没有 2 个 B 帧的流

-g 6 -G 20

编码器可以动态改变图片组大小以反映场景变化。
这是通过设置大于最小值(-g 标志)的最大 GOP(-G 标志)大小来完成的。
对于 VCD,合理的值可能是最小值 9 和最大值 15。对于 SVCD 9 和 15
将是很好的价值。 如果您只想在 SW 播放器上播放它,您可以使用其他最小
最大值。

计费示例:

> 拉夫2yuv 流*.avi mpeg2enc -b 1500 -r 16 -4 1 -2 1 -S 630 -B 260 -o
video_n1_1500_r16_41_21_S630_B240.m1v

lav2yuv 处理所有流文件。 然后 mpeg2enc 被赋予一些选项,使
编码流看起来更好。 使用 -S 630 表示 mpeg2enc 标记流,以便 mplex
每 630MB 生成一个新流。 一件重要的事情是使用 -B 选项
指定非视频(音频和复合信息)比特率。 这 -B 值 260 应该
适用于具有 224kBit 和复合信息的音频。 欲了解更多信息,请查看
在脚本目录中的编码脚本中。

MPEG-1 复用示例

计费示例:

>复杂 声音.mp2 视频.m1v -o 我的视频.mpg

将 sound.mp2 和 video.m1v 流放在一起到 my_video.mpg。 它只适用于
如果您有 CBR(mpeg2enc 未使用 -q 选项),则很容易。

计费示例:

复合体 -V -r 1740 音频.mp2 视频_vbr.m1v -o vbr_stream.mpg

在这里,我们多路复用可变比特率流。 mplex 现在是一个单程多路复用器,所以它
无法检测最大比特率,我们必须指定它。 输出的数据速率
流是: 音频 比特率 + 高峰 视频比特率 + 1-2% 复合体 信息. 如果音频 (-b
224) 有 224kBit,视频有 1500kBit(用 -b 1500 -q 9 编码)然后我们有 1724 *
1.01 或大约 1740kBit。

创造 MPEG-2的 视频


MPEG-2 推荐用于图像大于 352x240(NTSC 和 352x288)的源
为 PAL。 MPEG-2 还可以处理隔行源,例如完全从电视录制
解析度。

MPEG-2 允许使用 mpeg 第 3 层 (mp3) 声音。 所以你可以使用你最喜欢的
用于创建声音的 mp3encoder。 但是,MP3 音频对 DVD 无效。 它
最好使用 MP2(第 2 层)音频。 音频也可以是 VBR 流。

MPEG-2 通常是 VBR 流。 带有优化的 MPEG-2 创建需要大量 CPU
力量。 具有双分辨率的电影不会比 MPEG-4 流大 1 倍。
根据您的质量设置,它将比质量大 1.5 到 3 倍。
较低分辨率的 MPEG-1 流。MPEG-2 音频创建示例

> 拉夫2瓦夫 编辑列表.eli mp2编码 -o 声音.mp2

您可以通过告诉 mp2enc 使用较低的比特率(-b 选项)如 160 或
192 kBit/s。 您可能想要添加 -r 44100 以便 mpeg2enc 生成 44.1kHz 采样
评价音频。 我希望我不需要解释 MP3 编码器的用法。 但是你应该
不要使用所有可用的花哨选项。MPEG-2 视频创建示例

> 拉夫2yuv 编辑列表.eli mpeg2enc -f 3 -b 3000 -q 9 -o 视频.m2v

MPEG-2 视频的一个非常简单的示例。 最重要的选项是 -f 3。这说明
mpeg2enc 它应该创建一个 MPEG-2 流。 因为它是一个通用的 MPEG-2,所以你必须
使用 -b 比特率选项。 并且应该使用 -q 选项,因为您通常需要一个空格
保存 VBR 流。 使用 VBR 流时,-b 选项告诉 mpeg2enc 最大比特率
可以使用。 -q 选项告诉 mpeg2enc 流应该具有什么质量。 这
比特率具有由 -b 指定的值的上限。

> 拉夫2yuv 编辑列表.eli mpeg2enc -f 3 -4 1 -2 1 -q7 -b 4500 -V 300 -P -g 6 -G 18 -I 1 -o
视频.m2v

这将生成更高质量的 MPEG-2 流,因为 -4 1 和 -2 1 选项是
用过的。 使用 -b 4500 -q 7 你告诉 mpeg2enc 最大比特率和质量因子。 -V
是用于解码流的视频缓冲区大小。 对于 SW 播放,它可以很多
高于默认值。 动态 GOP 使用 -g 和 -G 设置。 更大的 GOP 大小可以提供帮助
降低给定质量所需的比特率,但非常大的尺寸可能会引入
由于 DCT/iDCT 累积舍入误差而导致的伪影。 -P 选项还确保 2
B 帧出现在相邻的 I/P 帧之间。 -I 1 选项告诉 mpeg2enc
源是像视频一样的隔行扫描材料。 有(耗时的)交错运动
mpeg2enc 中存在的补偿逻辑。 Mpeg2enc 将使用该逻辑,如果
您编码的帧大于 TV 规格的 VCD 大小。

如果你用 yuvdeinterlace 去隔行扫描电影,你应该告诉 mpeg2enc 它确实如此
不需要对隔行材料进行运动估计。 您必须使用 -I 0 选项
mpeg2enc 说帧已经去隔行了。 这会节省很多时间
编码时。 如果你不使用 -I 0 它不会引起问题,编码只会
需要更长的时间。

您还可以使用缩放选项来优化(去噪)图像以变小
流。 这些选项在以下部分中详细解释。哪些值
应该用于 VBR 编码?

-q 选项控制输出流的最小量化。 量化
控制图像信息编码的精度。 值越低
更好的图像质量。 低于 4 的值是极端值,只有在您知道时才应使用
你在做什么

通常您必须使用 -b 选项设置最大比特率。 棘手的任务是
为 -q 选项和 -b 选项设置一个值,无需使用即可生成不错的电影
太多的带宽并且不会引入太多的工件。

应该选择一个质量因子,以便峰值比特率和
平均比特率相差约 20-25%。 如果差异很小(小于
10%) 您很可能会开始在高速运动场景中看到伪影。 最多
平均速率太接近(或等于)最大速率的常见原因是错误的
最大比特率的值或过高的品质因数。

会产生比您数不清的工件更多的组合是具有最大值的 SVCD
视频比特率为 2500kBit,品质因数为 1 或 2。对于视频限制为 SVCD
2500kBit 7-11 的质量因子非常适合(默认值为 8)。 如果使用过滤器
节目或有很好的来源,如数字电视、DVD 之类的材料或渲染
在创建 SVCD 时,您可以使用 6 的品质因数。 如果您的 SVCD/DVD 播放器
支持非标准比特率,您可以将比特率提高到标准最大值以上
2788 kBit/sec(视频加音频)。 使用更高比特率和品质因数的动作时
场景看起来会好很多,但当然光盘的播放时间会更少。

对于全尺寸图片和 7 到 11 的最高比特率具有相同的 (3500-4000) 品质因数
kBit 将产生很少的工件。

对于 SVCD/DVD,如果最大比特率不是
设置太低:

q <= 6 真正清晰的图片,质量好
q <= 8 质量好
q >= 10 平均质量
q >= 11 不是很好
q >= 13 这里即使是静止的序列也可能看起来是块状的

编码目标电视(隔行)或监视器(逐行)

除逐行格式外,MPEG-2 还支持隔行数据。 MPEG-2 电影可以
交错或渐进。 这取决于来源(电影或广播)和
查看设备。

如果您对电影进行编码,则两个字段应该相同。 与流去隔行
yuvdeinterlace,或者如果您有高质量的源,并且不需要使用降噪器
使用 yuvcorrect -T NOT_INTERLACED。 还将 mpeg2enc 隔行模式 (-I) 选项设置为 0。
这意味着没有交错。 我们在这里真的不需要去隔行,因为
帧的场之间没有运动。 我们只需要统一两个领域
成一个单一的渐进框架。

这部电影应该在任何设备(电视或显示器)上播放都没有问题。

如果您有隔行源(广播),您可以将其编码为隔行流。 或者
对流进行去隔行并将其编码为逐行流。 如果你去隔行它
yuvdeinterlace 你会丢失细节。 但是如果你打算在你的电脑上播放录制的流
DVD 播放器和您的电视执行去隔行扫描是不明智的。 如果你只想
在监视器上播放(渐进式显示) 播放时画面看起来更好
如果去隔行,则返回。 如果您使用的播放器可以进行去隔行,那没关系
如果您的编码视频具有隔行帧或逐行帧。

如果您打算对流进行去隔行扫描,则只能使用 yuvdeinterlace 执行此操作并设置
mpeg2enc -I 0. 如果您不想对流进行去隔行扫描,则无需设置任何
特殊选项(不要使用 yuvdeinterlace 和 mpeg2enc -I 0)

如果您想暂停流并查看静止图像,您应该去隔行。 因为那时
暂停时图像无闪烁。

如果您有一部电影(逐行)与广播(隔行)混合在一起
(就像在纪录片中,扬声器的某些部分被隔行记录而其他部分
部分已拍摄)您必须在具有平均静止图像的良好电影序列之间进行选择
或具有良好静止图像的平均外观电影序列。

对于具有平均剧照的好电影,不要去隔行。 对于平均电影序列
好的剧照然后去隔行(使用 yuvdeinterlace 和 mpeg2enc -I 0)。MPEG-2 多路复用
例子

> 复合体 -f 3 -b 300 -r 4750 -V 音频.mp3 视频.m2v -o 最终版.mpg

现在两个流(一个 mp3 音频和一个 mpeg2 视频)都被多路复用为一个流
(最终.mpg)。 你必须使用 -f 3 告诉 mplex 输出格式的选项。 你也
必须添加 -b 解码器缓冲区大小选项与编码时使用的值相同
视频。 ——r 是视频 + 音频 + 1-2% 的复合信息的比率。

- -V选项告诉您的复用源是 VBR 流。 如果你不使用这个
option mplex 使用您告诉它的比特率创建类似 CBR 流的内容
这些因素包括原料奶的可用性以及达到必要粉末质量水平所需的工艺。 -r 选项。 这些流通常会变得很大。

创造 视频 光盘 (VCD)


VCD 是 MPEG-1 视频的受限版本。 VCD 格式由飞利浦定义。 目标
是使用单速 CD 驱动器和其他便宜的硬件(不灵活)来获得便宜的
硬件播放器。 因此,用于制作 VCD 的视频和音频存在限制。
视频的比特率为 1152kBit 和 224kBit/sec MP2 音频。 您无权使用
-q 选项、动态 GOP 大小和视频缓冲区限制为 46kB。 图片尺寸
NTSC 限制为 352x240,PAL 限制为 352x288。

如果您没有 VCD(仅)播放器并且您打算使用您的 DVD 播放器,那么它是相当
DVD 播放器可能足够灵活以允许更高的比特率、动态 GOP
大小、更大的视频缓冲区等等 VCD 音频创建示例

> 拉夫2瓦夫 流.avi mp2编码 -V -o 声音.mp2

-V 强制 VCD 2.0 兼容输出。 那里的音频采样率固定为 44.1kHz。 和
您可以选择单声道音频的音频比特率是 64、96 或 192kBit/sec。 如果你有
立体声音频,您可以选择 128、192、224 或 384kBit/sec。 对于硬件玩家,你
应该坚持 44.1 224kBps 立体声层 2 Audio.VCD 视频创建示例

> 拉夫2yuv 流.avi 尤夫斯卡勒 -O VCD mpeg2enc -f 1 -r 16 -o 视频.mpg

对于 VCD 兼容输出, -f 1 根据需要设置 mpeg2enc 中的所有选项。 看起来
许多 VCD 播放器(例如 Avex)无法播放已编码的 MPEG 流
搜索半径大于 16,所以不要使用 -r 选项覆盖默认值
16。

> 拉夫2yuv 流文件 mpeg2enc -f 1 -4 1 -2 1 -S 630 -B 260 -P -o 视频.m1v

运用 '-S 630“ 表示 mpeg2enc 标记流,以便 mplex 生成新流
每 630MB。 一件重要的事情是使用 -B 指定非视频的选项
(音频和复合信息)比特率。 -B 值 260 应该适合音频
224kBit 和复合信息。 有关更多信息,请查看编码脚本
在脚本目录中。 多路复用流应该很容易放在 650MB 的 CD 上。

视频的默认值 (-B) 为 700MB。 mpeg2enc 自动标记每个流
如果未使用 -B 选项设置不同的值,则为该大小。 如果你有一张CD
您可以在其中写入更多数据(可能多达 800MB),您必须设置 -S 选项或
否则 mpeg2enc 会将流标记为 700 MB,而 mplex 将在那里拆分流。
这几乎肯定不是您想要的。

VCD 复用示例

> 复合体 -f 1 声音.mp2 视频.mpg -o vcd_输出.mpg

-f 1 选项打开了许多奇怪的东西,否则这些东西在可敬的
多路复用器!创建 CD

多路复用流必须转换为 VCD 兼容。 这是由
录像机

> 录像机 测试视频.mpg

创建一个 视频光盘.bin、数据文件和一个 视频CD.cue 用作控制文件
光盘。

您使用 cdrdao 刻录映像。 Cdrdao 是另一个优秀的 Sourceforge 项目,它是
发现于:注释

对于 MPEG-1 编码的典型(45 分钟运行时间)节目或 90 分钟的电影
模拟广播大约 1800 kBit/sec 的恒定比特率应该是理想的。 这
结果文件大约 700M,持续 45 分钟,非常适合作为原始 XA MODE2 数据
CD-R 上的曲目。 对于纯数字源(DTV 或 DVD 流和类似的)VCD 1152 作品
精细。

请注意: 如果您对 VBR MPEG-1 (-q) 进行编码,请记住硬件可能不是设计用来做的
播放,因为它不在规格中。 如果它起作用了,那就很高兴了。 我有
注意到当你有一个 MPEG-1 流告诉 vcdimager 它是一个 SVCD 时它会有所帮助。
vcdimager 抱怨(但只有警告而不是致命错误)但你应该能够
烧掉它。 这可以说服玩家在其固件中使用不同的例程和
播放正确,但不能保证。存储 MPEG

如果您将数据记录为 XA 模式 2 曲目,您可以在 CD 上容纳更多内容(在
错误纠正/检测的费用)。 您可以使用 vcdimager 来执行此操作和 vcdxrip(部分
vcdimager 包)以提取(“rip”)生成的文件。 为了更好的质量
是 SVCD 和 XVCD 和 DVD。

目前 SVCD 完全支持 mplex 中的预设格式和创建工具
磁盘。 可以由 DVD 播放器硬件和软件播放的 MPEG 流可以很容易地
使用 mpeg2enc/mplex 制作

如果您的播放器不支持 SVCD,您可能会发现它可以处理具有
远高于标准比特率。 通常高达 2500kBit/sec 是可能的。 这
一些品牌的 DVD 播放器也可以播放不符合规格的 SVCD 和 VCD 光盘。 和
更高的比特率和高质量的源材料值得尝试 mpeg2enc 的 -h 标志
它产生的流与 VCD 标准的限制一样尖锐。

但是,如果您的播放器支持它并且您有耐心进行更长的编码
次 SVCD 是一个更好的选择。 使用更高效的 MPEG 格式 SVCD 超过
将 VCD 的分辨率提高一倍,同时生成的文件通常小于两倍。

创造 SVCD


超级 VCD (SVCD) 是由中国人开发的 VCD 的增强版。
政府支持的制造商和研究人员委员会。 最终的 SVCD 规范是
1998 年 XNUMX 月宣布。飞利浦 SVCD 格式的一个很好的解释可以是
在这里找到:。

以全电视分辨率录制(意思是:-d 1 对于 PAL,这是 720x576)分辨率用于
NTSC 是 480x480 的 PAL 480x576,所以你知道为什么你应该以全尺寸录制。 SVCD 音频
创建示例

> 拉夫2瓦夫 流.avi mp2编码 -V -e -o 声音.mp2

SVCD 规范允许更广泛的音频速率选择,没有必要
使用 224 kBit/秒。 允许 32 到 384 kBit/sec 之间的任何音频速率。 音频可能
是 VBR(可变比特率)。 -e 启用音频的 CRC 错误保护。 CRC
必须启用以符合 SVCD 标准但似乎大多数玩家不支付
注意CRC信息。 每个音频帧的 CRC 信息需要 2 个字节

MPEG-1 layer-II 的近似帧长公式为:

(以字节为单位的帧长度)= 144 *(字节率)/(采样率)

如果您有典型的 VCD 设置,CRC 数据需要整个数据的 0,27%。 在
在最坏的情况下,您有一个 MONO 32k 比特率流,CRC 数据需要 1,92%.SVCD
视频创作示例

> 拉夫2yuv 流.avi 尤夫斯卡勒 -O SVCD mpeg2enc -f 4 -q 7 -I 1 -V 200 -o 视频.m2v

-f 4

将 mpeg2enc 的选项设置为 SVCD

-q 7

告诉 mpeg2enc 生成可变比特率流

-我 1

告诉 mpeg2enc 假设原始信号是场隔行视频,其中奇数
在每帧中的偶数行之后的半帧间隔对像素行进行采样。 -I
0(逐行输出(无场图像))选项也适用于 PAL

您可以使用较低的比特率,但 SVCD 标准限制 比特率 (声音的 视频)
2788800 位/秒. 因此,对于 224Kbps 音频和开销,2550 可能已经微不足道了
紧的。 由于 SVCD 格式允许 32 到 384 kBit/sec 之间的任何音频速率,您可以
通过使用 192k 音频(或非音乐材料 160k)节省几位/秒。

SVCD 支持可变比特率 (VBR),因为 MPEG-2 通常是 VBR,但与顶部
视频比特率限制为 2500kBit/sec。 使用 -f 4 标志,编码器还设置动态 GOP
下限为 -g 6,上限为 -G 18。这可以节省几位/秒并改进
场景变化时的画质。 当使用 -f 4 mpeg2enc 编码时会忽略
视频比特率 (-b) 和搜索半径 (-r) 选项。 如果使用 -f 5,则必须指定
mpeg2enc 的比特率和其他选项。

PAL(欧洲风格 25 帧/50 场/秒)视频的另一种可能性
是:

> 拉夫2yuv 流.avi 尤夫斯卡勒 -O SVCD mpeg2enc -f 4 -I 0 -V 300 -o 视频.m2v

电影以 24 帧/秒的速度在胶片上拍摄。 对于 PAL 广播,这部电影只是简单地放映
以 25 帧/秒的速度略微“太快”(对于绝对音高的人来说非常痛苦
音高感)。 -I 0 标志关闭了补偿所需的繁琐计算
场交错提供更快的编码。

不幸的是,在 NTSC(美国风格 30 帧/60 场秒)视频中播放的电影这将
产生非常差的压缩。 用于每秒产生 60 个场的“下拉”采样
从 24 帧开始,第二部电影意味着 NTSC *are* 场中的一半帧是隔行扫描的。

不要忘记上面提到的 -S 和 -B 选项。 您希望流适合 CD
不是吗?SVCD 多路复用示例

> 复合体 -f 4 -b 300 -r 2750 声音.mp2 视频.m2v -o svcd_out.mpg文件

-f 4

告诉 mplex 合并一个 SVCD

-r 2750

是计算出的Audio + Video Bitrate + 1-2% 多路复用信息

-b 300

是播放设备上可用的缓冲区(与用于视频的值相同)
编码(mpeg2enc 的 -V 选项)。 SVCD 创建 CD

计费示例:

> 录像机 -t 光碟 测试视频.mpg

创建一个 视频光盘.bin、数据文件和一个 视频CD.cue 用作控制文件
光盘。

如前所述,使用 cdrdao 刻录映像。

注意:如果要构建“自定义”VCD/SVCD,则需要使用 mplex -f 2 和 -f 5
开关。

注意:VCD 和 SVCD 的东西可能在你的硬件播放器上工作或不工作。 有很多报道说
它运作良好。 如果它不起作用,请不要担心。 我也不负责
无法使用的 CD。 (“杯垫”)

创造 DVD的


几年前这句话是正确的:本节中的所有内容都是新的。 这
我在这里提到的限制在当前版本中可能不存在。 目前(2007 年 XNUMX 月)
DVD 制作工作正常。

您显然需要一台 DVD 刻录机。 我确实拥有可以使用的 Ricoh DVD+RW,而且我知道有 DVD-
能够刻录 DVD-R 的 RAM 刻录机。 该磁盘也适用于 DVD 播放器。 现在最
DVD 刻录机可以同时刻录媒体 + 和 -,因此这不再是问题。
用于刻录的程序取决于 DVD 刻录机。

我们使用 dvdauthor 创建和编写 VOB、IFO 和 BUP 文件。 可从
Sourceforge(您可能已经猜到了).DVD 音频创建示例

> 拉夫2瓦夫 流文件 mp2编码 -o 声音.mp2

采样率必须为 48kHz。 默认情况下,mp2enc 确实创建了 48kHz 的采样率。
如果不是 48kHz mp2enc 将重新采样音频以获得采样率。 如果音频
以 48kHz 记录,则不需要重新采样,并且可以使用 toolame 进行编码
(它比 mp2enc 快)。 DVD 视频创建示例

> 拉夫2yuv 流文件 mpeg2enc -f 8 -o 视频.m2v

-f 8

这将为与 DVD 兼容的 MPEG-2 视频正确设置选项
标准。 最大比特率设置为 7500kBps,视频缓冲区大小设置为
230KB。 默认质量因子设置为 8。 mpeg2enc 设置当前没有自动
序列长度与 VCD/SVCD 相同。

获得低比特率和高质量流的其他选项也可用于
覆盖上面提到的默认设置。 您也可以使用 yuvdenoise 来增加
如果输入数据有噪声(例如来自 VHS 磁带),则图像质量。 一个典型的
命令将如下所示:

拉夫2yuv 移动版 雨声 mpeg2enc -f 8 -q 7 -4 1 -2 1 -P -I 0 -N -o
视频_DVD.m2vDVD 复用示例

> 复合体 -f 8 声音.mp2 视频.m2v -o my_dvdlikestream.mpg

-f 8

在这里,我们再次指定我们想要像 MPEG 流一样的 DVD。 mplex 不能做所有的事情
DVD 允许有花哨的东西,但它足够接近 HW-DVD 播放器接受它。

-o

在那里我们指定输出文件名。 DVD 制作示例

该主题将包含在 dvdauthor 程序的文档中。 对于问题
请参阅一般情况下它会像这样工作:

> DVD作者 -o 输出/ 流1.mpg 流2.mpg ... my_dvdlikestream.mpg; DVD作者 -T -o
输出/

您将获得一个包含 AUDIO_TS 和 VIDEO_TS 目录的目录。 烧录数据
将磁盘转至 DVD+-R/+-RW 刻​​录机的操作如下:

成长 -Z /dev/scd2 -dvd 视频 我的DVD/

如果您拥有 DVD+RW/+R 驱动器,那么了解更多信息的好地方是:

页。 您还需要一个 cdrtools 版本 DVD视频 支持。 cdrtools
已知 1.11a27 可以工作,但较新的版本已经存在。

对于其他作家,写入 DVD 的命令会有所不同。 你可以多拿一些
dvdauthor 包中的信息。 不能保证它会起作用!!!

创造 DIVX 视频


lav2avi.sh

创建 DIVX 的另一种方法是程序 MEncoder的 这是来自mplayer项目。 .
有关 mencoder 的更多信息,请阅读 mencoder/mplayer 帮助和文档。 一个
第一次和第二次传递在传递结束时给出比特率提示,可用于
编码到特定大小(650 MB、700 MB 和 800 MB)。 脚本 lav2avi.sh 使用这个
如果提供了信息(对于短流,mencoder 会省略它)。 寻找参数
首选尺寸 在脚本中。 您还可以指定用于编码的其他参数
编码器参数 脚本中的选项。 有关可用参数的说明,请查看
在 mplayer/mencoder 手册中。

outputfilename 是输入文件的名称(第一个选项),但带有扩展名
维。 如果文件的大小小于指定的 首选尺寸 这是因为来源
质量非常高(无噪音)并且指定的比特率高于要求。
您通常会获得 700MB 的 1.5 小时电影,图像大小为一半,比特率约为 900
意味着 divx 质量好(当然,假设源材料质量好)。

该脚本执行 3 步编码:

第一步 - 音频编码

第二步 - 第一个视频通过

第三步 - 第二个视频传递

mplayer/mencoder 文档不赞成使用 3 pass 编码方法(它
可能会导致 A/V 同步问题)并建议使用 2 pass 方法。 这
mencoder/mplayer 文档很广泛,有很多有用的提示(和比特率
TOOLS/ 目录中的计算器)。

对于编码,使用快速 ffmpeg (lavc) 编解码器。 它提供了很好的结果和高
很棒的表演。 使用 mp3 进行音频编码。 对于所有部分的编码,它使用 unix
管道。 这意味着您的硬盘驱动器上不需要额外的空间,所有 glav
将进行操作。 对于音频编码,脚本使用 FIFO 队列。

如果您想根据自己的需要调整脚本,请使用以下提示:

第一步的输出是名为的文件 框架.avi 带有编码音频

第二步是使用 框架.avi 并且输出是名为的文本文件 lavc_stats.txt 有时间
信息

第三步是使用 框架.avilavc_stats.txt 用于将流编码到输出
文件 movie2.avi

如果您只想更改视频比特率,请保留文件 框架.avi 注释掉第一步
编码并重复第 2 步和第 3 步。 不要忘记删除
框架.avi 已移除。

优化流

使用过滤器有助于提高恒定比特率 (CBR) 视频流的图像质量。
使用 VBR(可变比特率)视频可以减少文件大小。

计费示例:

> 拉夫2yuv 流.avi yuv中值过滤器 mpeg2enc -o 视频.m1v

这里使用 yuvmedianfilter 程序来改善图像。 这消除了一些低
图像中的频率噪声。 它还可以稍微柔化图像。 需要一个中心
指针并平均它周围落在指定阈值内的像素。 它
然后用这个新值替换中心像素。 您还可以使用 -r(半径)
其他搜索半径的选项。

注意:大于默认值 2 的半径非常慢!

yuvmedianfilter 对亮度和色度有单独的设置。 您可以控制搜索
半径和触发阈值独立。 如果您使用 0 的阈值,则
过滤被禁用(-t 0 禁用亮度过滤,-T 0 禁用色度过滤)。

> 拉夫2yuv 流.avi yuv中值过滤器 -r 3 -t 4 -T 0 mpeg2enc -o 视频.m1v

此示例使用 3 像素的亮度搜索半径,阈值为 4(默认
是 2),并禁用对色度分量的过滤。 有时,取决于
源材料,色度的中值滤波会导致轻微的颜色偏移
绿色。 过滤亮度分量(禁用色度过滤)是解决方案
到那个问题。

计费示例:

> 拉夫2yuv 流.avi 雨声 mpeg2enc -o 视频.m1v

现在我们正在使用 yuvdenoise 来改善图像。 过滤器主要减少颜色和
由于相位误差引起的亮度噪声和闪烁,但也可有效去除
斑点。

如果输入是隔行的,则 yuvdenoise 隔行降噪。 你当然可以改变
降噪阈值 (-g/t)。 创建黑色边框可以降低编码的比特率
流,因为纯黑色区域比噪声压缩得更好(从模拟中捕获
VHS 和 8mm 等音源通常在时间和底部有几行
非常吵闹)。 为此,您可以使用定标器。

yuvdenoise 使用不同的方法来过滤噪音。 有关如何的更多信息
yuvdenoise 的工作原理及其选项的描述可以在联机帮助页中找到。

如果你有一个高质量的源,你应该将过滤器降低到这样的水平:-g
0,255,255 -t 2,2,2。 您也可以使用 mpeg2enc -h/--保持-hf 选项。 那个选项
告诉 mpeg2enc 保留尽可能多的高频信息。 使用 -h 会
大大增加比特率(文件大小)。 如果比特率太接近最大值(设置
使用 -b) 编码器将不得不降低质量以避免超过最大值
比特率。

mpeg2enc 中的内置过滤器是 -N/--reduce-HF 选项。 这个选项不是真的
通常意义上的过滤。 而是它改变了高频信息的准确程度
被编码。 高频通常是噪声。 你也有尖锐的高频
边界或过渡。 -N 选项的值可以介于 0.0 和 2.0 之间,其中 0.0
没有(禁用高频量化器提升)和 2.0 给出最大值
量化提升。 要使用的值取决于所需的输出质量和文件大小。
-N 小于 0.5 的值非常微妙,而 1.0 的值将获得良好的效果
比特率降低和输出质量之间的平衡。 使用 1.5 以上的 -N 值将
显着降低输出图像的清晰度,通常仅用于较差的图像
质量来源(例如 VHS 磁带)。

使用 yuvmedianfilter 仅过滤色度 (-T) 的能力是中等有效的
在黑暗场景中减少噪点而不在正常(更亮)期间软化图像
场景。 亮度的中值滤波 (-t) 会产生较低的比特率,但会导致
细节丢失(软化)。 仅色度中值滤波不那么激进,是一个很好的
选择与 yuvdenoise 结合使用。

结合过滤器 yuvdenoise、yuvmedianfilter 和 mpeg2enc -N 选项给出了一个非常
对比特率(文件大小)的精细控制。 减少(或增加)
比特率取决于源材料和使用的确切编码/过滤器选项。 所以我们
不能给出每个选项和组合将减少文件大小的确切数字,
只有指导方针。

通常您应该在 0.5 到 1.5 的范围内使用 -N 选项。 低于 0.5 则不会
大大降低比特率(但确实保留了清晰度)。 在 1.5 及更高版本时,您将
注意视频中的柔化和边缘周围可能出现的伪影(光晕/振铃)
对象(尤其是文本/字幕)。 如果组合过滤器,则应使用 yuvdenoise
也许在 yuvmedianfilter 之后。 即使在缩放后也可能 yuvmedianfilter。 拥有
yuvmedianfilter 链中的比特率并没有降低那么多。 经常使用
yuvdenoise 就足够了。 如果您的来源质量低,yuvmedianfilter 会很有帮助,并且
如果您已经拥有相当好的质量,则不会那么多。 当您将过滤器和
选项,您很可能会将文件大小减少到文件大小的一半左右,而无需
使用选项和程序。

一般来说,激进的过滤会产生更小的文件(更低的比特率),但会减少
图片的质量(细节)。 不那么激进的过滤/处理将保留更多
详细但会导致文件更大。

计费示例:

> 拉夫2yuv 流.avi 尤夫基内科 -F 1 mpeg2enc -o 视频.m1v

yuvkineco 用于 NTSC 源。 它从 30000.0/1001.0(大约
29.97) fps 到 24000.0/1001.0 (约 23.976) fps,你可以称之为“反向 2-3 下拉”
在 README.2-3pulldown 中有更多关于此的信息。 yuvkineco 只删除 NTSC 特定的
问题。

如果您想改善图像,您还应该使用 yuvdenoise:

> 拉夫2yuv 流.avi 尤夫基内科 雨声 mpeg2enc -o 视频.m1v

例如:

> 拉夫2yuv 流.avi 尤维茨噪声 mpeg2enc -o 视频.m1v

yuvycsnoise 也用于 NTSC,专门用于 NTSC Y/C 分离噪声。 如果
视频捕获硬件只有一个很差的 Y/C 分隔符,然后在垂直条纹(尤其是
红色/蓝色)噪声出现,每 1 帧似乎是棋盘格标志和明暗反转。
yuvycsnoise 减少了这种类型的噪音。 您还可以使用不同的阈值
亮度/色度和优化方法。 使用 DV 时不需要此过滤器
(数字视频)数据。

yuvycsnoise 仅在我们使用 NTSC 时才正确工作:

全高(480 行)

全动态拍摄 (29.97 fps)

用糟糕的 Y/C 分离器硬件捕获

有关 yuvkineco 和 yuvycsnoise 的更多信息,请阅读 yuvfilters 中的自述文件
目录。

如果您想尝试确定降噪器、缩放器和
所以用yuvplay替换mpeg2enc。 yuvplay 回放 yuv 帧,以便您可以看到
如果您选择的选项使事情变得更好或更糟。

命令如下所示:

> 拉夫2yuv 流文件 雨声 -选项 尤夫斯卡勒 -选项 尤夫玩

如果您想知道每个工具降低平均比特率的程度。 你可以用这张表
看看如果你有一个全尺寸的视频并想用
质量因子为 5,允许的最大比特率为 8500kb/sec。

无降噪:8300 kb/s(大部分达到上限)

尤文噪声:7700 kb/s

mpeg2enc --reduce-hf:7400 kb/s

yuvdenoise + yuvmedianfilter:6000 kb/s

yuvdenoise + mpeg2enc --reduce-hf:4900 kb/s

以上所有:3600 kb/s

-N│--减少-hf 或者 yuvdenoise 本身只是一个适度的改进,他们一起
大幅降低比特率。 之间没有太多明显的区别
单独使用 yuvdenoise 和 yuvdenoise 与 mpeg2enc --reduce-hf。 有用的值是
在 0.0 和 1.5 之间。 你可以说你想要的品质因数越高,
少这个选项改进。 在品质因数 4 下,您可以使用 -N 1.0 节省大约 1%。 如果你
想要 9 的品质因数并使用 -N 1.0,您最多可以节省 40%。 但你可能会节省
少,这取决于您编码的视频!!!

如果您问自己为什么不总是使用上述所有过滤器? 答案是
图像变柔和(细节丢失)并且编码时间增加。 大多数过滤器
每个都需要与 mpeg2enc 编码视频所需的时间大致相同。

如果你有非常高质量的材料并且想要保留每一个细节,你应该尝试使用
另一方面,mpeg2enc --keep-hf│-h。

请注意: 您的比特率降低取决于材料和噪音
图像。

另一个有趣的 mpeg2enc 选项是 -E│--单位系数消除 选项。 这个选项是
默认禁用。 如果启用它,一个特殊的“单位系数消除”算法,
应用于编码的图片块。 基本上这个程序会强制一个块
不携带很多信息(但使用很多位进行编码)的类型被跳过。 一个
负值检查基数 (DC) 以及 AC 系数。 正值
意味着仅检查纹理 (AC) 系数并可能将其归零。 这
推荐值介于 -20 和 +20 之间。 你通常可以预期你有 5%
减少文件大小。 比特率降低的数量可能会有很大差异,范围
范围从不太明显到 20%。

如果您认为其他量化矩阵将有助于使用 -K│--自定义量化矩阵
选项。 您可以尝试自己的量化矩阵或使用其他内置函数而不是
默认。 您可以选择 kvcd、tmpgenc、hi-res 和您自己的。 通常使用 -K
使文件变小,但高分辨率选项除外(这会使文件大得多)。
很难给出确切的指导方针,有时其他量化矩阵几乎可以节省
什么都没有,下次最多20%。 超过 20% 的可能性很小,10-15% 为中等
qualityfactor (-q 8-10) 是可能的。 质量越高,节省的越少,质量越高
4-6 倍的比特率降低可能只有 5%

要记住的一件事是单位系数消除和量化
矩阵选项正在降低比特率,同时保持相同的视觉质量。 在
此时您可以选择使用较小的文件来增加将要播放的视频量
适合光盘介质,或者您可以选择通过降低
-q 值加 1 并制作更大(但质量更高)的文件。

缩放 抵消 更正


基本缩放在 转换 电影 部分

缩放获取图片的一部分并将其缩放到更大或更小的尺寸。 这
缩放由 yuvscaler 完成:

拉夫2yuv 测试文件 尤夫斯卡勒 -I 使用_400x400+50+100 尤夫玩

这里我们只取图片的一部分并将其放大到原始帧的大小。
但是 yuvscaler 也会改变像素纵横比。 这意味着当您查看流时
在我们的示例中,使用 yuvplay 看起来像一个正方形。 缩放后,如果样本(像素)
纵横比未更改,视频将不会以正确的纵横比显示。
Yuvscaler 通过调整样本纵横比进行补偿。 如果你有一个隔行扫描
视频,如果视频是隔行扫描的,则高度和 HeightOffset 必须是 4 的倍数。
否则值(宽度、高度、宽度偏移、高度偏移)必须是 2 的倍数。

无法通过缩放轻松解决的问题是图片未居中时
水平的。 例如,一方面您没有黑色像素,另一方面您有 30 个。
缩放在这里是错误的解决方案。 y4mshift 是完美的解决方案,因为它可以
将图像向左或向右移动。

拉夫2yuv 测试文件 y4m移位 -n 20 mpeg2enc -f 3 -b 4000 -q 10 -o 视频.m2v

这会将图像向右移动 20 个像素。 如果您使用负片,则图像会移位
向左转。 您必须使用偶数。 插入的像素设置为黑色。

有些人可能想知道为什么图像没有居中并且图像周围有黑色边框
查看录制的内容时的图像。 黑边的原因在历史上
CRT(阴极射线管)电视技术。 电视标准的历史非常
有趣的故事,但该主题在其他(大型)书籍中有所描述。

电视不能显示全图。 部分图片未显示,因为电视
设置过扫描(有时高达 10%,但今天更常见的是 5%)。 但是当你
用一张卡片捕捉视频,你会看到整个图像,包括电视丢失的边框
由于过度扫描。 水平偏移通常不是采集卡的问题。 它
当电影播出并且与图像没有很好地同步时是一个问题。 这
意味着源的扫描与载波信号不完全同步,您
不会在电视上看到。

车架 转变


是否需要将帧率从 PAL 转换为 NTSC 或其他方向? 或者
更简单的事情,比如将帧率从 24FPS 转换为 24000:1001
从电影帧率转换为有效的 NTSC 帧率。

yuvfps 是你的程序。 它可以通过丢帧来降低帧率或创建一个
通过复制帧来提高帧率。 如果标题中有错误的帧率
只能改变YUV流的头部,不能修改流。

因为帧只是复制(复制)你应该先去噪然后改变
最后一步的帧率和比例。 如果您有隔行扫描源,您还应该
在改变帧率之前去隔行。 如果您创建更高的帧速率,则非常
播放时可能会出现奇怪的闪烁。 如果您将 PAL 转换为 NTSC
(30000:1001 FPS 约 29,97 FPS) 帧速率将降低约 480/576 倍
(NTSC 线路/PAL 线路)。 如果您将帧速率从 PAL 降低到 NTSC(在 24000:1001)或
NTSC FILM (24FPS) 比特率约为 (480 Lines * 24 FPS) / (576 Lines * 25FPS)。
如果您在去噪之前更改帧速率,则 yuvdenoise 将无法找到
跨帧的噪声和所需的带宽将略有增加。

例如:

> 拉夫2yuv 视频.eli yuvfps -r 30000:1001 尤夫斯卡勒 -O SVCD mpeg2enc -f 4 -o
视频_ntsc_svcd.m2v

这是将源视频转换为以 30000:1001 FPS 运行的 NTSC 视频的示例
(或大约 29,97FPS)在 SVCD 大小。

例如:

> 拉夫2yuv 视频.eli 雨声 yuvfps -r 24000:1001 尤夫斯卡勒 -O 尺寸_720x480
mpeg2enc -f 3 -b 4000 -q 7 -o 视频_ntsc.m2v

这个例子展示了你应该如何使用这些工具。 先去噪再改变
framerate 并在最后一步更改图像大小。

yuvscaler 或 mpeg2enc 可能无法正确检测到电视规范。 如果说
碰巧你必须添加 norm 选项 -n n/p/s 到选择错误的程序
标准。

如果你知道标题告诉错误的帧率,你可以简单地改变帧率
yuv 标题的这种方式:

> 拉夫2yuv 视频.eli yuvfps -r 25:1 -c mpeg2enc -f 3 -b 4000 -q 7 -o 视频_pal.m2v

你需要的 -c 选项。 告诉 yuvfps 它只应该更改
溪流。 随着 -r 25:1 你告诉 yuvfps 它应该写入标题的帧速率。
在您的示例中,PAL 帧速率为 25 FPS。 您必须始终使用小数形式。

如果您知道标头是错误的,并且您需要不同的输出比特率,您可以这样做
只需一步:

> 拉夫2yuv 视频.eli yuvfps -s 24:1 -r 25:1 mpeg2enc -o 视频.m1v转码
现有的MPEG-2

对来自数字电视卡或 DVD 的现有 MPEG-2 流进行转码,数据速率较低
比广播会给出好的结果。 标准 VCD 1152 kbps 通常仅适用于
对 MPEG-1 来说很好。 不同之处在于原始的信噪比。 噪音在
模拟的东西使它更难压缩。

您还需要在以下情况下手动调整相对于视频的音频延迟偏移
多路复用。 通常大约 150 毫秒的延迟似乎可以解决问题。

您必须下载 ac3dec 和 mpeg2dec 软件包。 你可以在他们的
主页:mpeg2dec ( ) 和 ac3dec。 对于解码音频流 mpg123 和 mplayer 可以
很有帮助。 您还需要 sox 和 toolame。

在脚本目录中有一个 mpeg转码 完成大部分工作的脚本。

所以转码看起来像这样:

> 转码 -V -o vcd_流 mpeg2src文件

-V

设置选项以便生成 VCD 兼容流

-o vcd_stream

创建了 vcd_stream.m1v(视频)和 vcd_stream.mp2(音频)

mpeg2src文件

指定源流

该脚本也打印如下内容:

> SYNC 234 毫秒

多路复用时,您需要调整音频/视频启动延迟以确保音频
和视频是同步的。 您需要传递给的确切延迟(以毫秒为单位)
使用“-v”同步音频和视频的 mplex 由 extract_a52 工具打印
使用“s”标志运行时标记为“SYNC”。 这是 mjpegtranscode 脚本的值
之后打印出来 SYNC 字。

然后你需要像这样多路复用它们:

> 复合体 -f 1 -O 234 vcd_stream.mp2 vcd_stream.m1v -o 低利率.mpg

-f 1

Mux 格式设置为 VCD

-O 234

mjpegtranscoding 脚本生成的视频时间戳偏移量,以 mSec 为单位,有负
允许值

vcd_stream.mp2 & vcd_stream.m1v

脚本生成的文件

低利率.mpg

VCD 兼容输出流

这里我们有一个 SVCD(MPEG-2 视频)示例:

> 转码 -S -o svcd_stream mpeg2src文件

你必须多路复用它:

> 复合体 -f 4 -O 234 svcd_stream.mp2 svcd_stream.m2v -o 低利率.mpg

问题: NTSC 和 VCD 播放有时会出现问题,因为电影可能
用 3 场/秒的 2:60 下拉 NTSC 重新编码。 mpeg2dec 设计用于播放
计算机并生成原始的 24 帧/秒比特率。 如果您现在对视频进行编码
创建 30 帧/秒的视频。 该视频现在对于编码音频来说太短了。

转码可以工作,但必须手动完成:

> mpeg2dec -s -o 管道 mpeg2src文件 pgm玩具4m -a 59:54 -r 25:1 -i t mpeg2enc -I 0 -f
4 -q 9 -V 230 -p -P -o svcd_stream.m2v

-p 告诉 mpeg2enc 为 3fps 电影的 2:24 下拉生成标题标志。 有可能
如果您不添加 -p 标志,也可以使用。 转码时不需要 -p 标志
VCD 格式,因为它在 mpeg1 中不受支持。

If do 每周 on 您的 it 东西 喜欢 Free Introduction


提取音频:

> 测试2.mpg 提取_a52 - -s AC3DEC -o WAV -p 声音.wav 2>/开发/空

显示的第一行包含标签“SYNC”,您稍后必须使用
复用时。 2>/dev/null 将 ac3dec 的输出重定向到 /dev/null。 在里面
下一步生成 mpeg 音频文件:

> 声音.wav mp2编码 -V -v 2 -o 音频.mp2

-V

强制VCD格式,采样率从44.1kHz转换为48kHz

-v 2

不必要但如果你使用它 mp2enc 会告诉你音频文件有多少秒
已经编码。

-o

指定输出文件。

测试2.mpg 提取_a52 - -s AC3DEC -o WAV 短袜 -t WAV /开发/标准输入 -t WAV -r 44100
/开发/标准输出 工具名 -p 2 -b 224 /开发/标准输入 音频.mp2

第一行的其中一行再次输出包含标签“SYNC”。 你必须利用这段时间
(以下称为“SYNC_value”)进行多路复用时。

VCD 制作使用:

> mpeg2dec -s -o 管道 测试2.mpg pgm玩具4m -a 59:54 -r 25:1 -i t mpeg2enc -s -o
视频_vcd.m1v

mpeg2dec:

-s

告诉 mpeg2dec 使用程序流解复用器

-o pgm管道

图片的输出格式,适用于pgmtoy4m

与:

> 复合体 -f 1 -O 同步值 音频.mp2 视频_vcd.m1v -o vcd_stream.mpg

-f 1

生成 VCD 流

-O 同步值

上面提到的值

对于 SVCD 创建使用:

> mpeg2dec -s -o mpeg2src文件 pgm玩具4m -a 59:54 -r 25:1 -i t mpeg2enc -f 4 -q 9 -V
230 -o 视频_svcd.mpg

-q 9

流的质量因子(VBR 流)(默认 q:12)

-V 230

以 KB 为单位的目标视频缓冲区大小

-o

输出文件

与:

> 复合体 -f 4 -b 230 音频.mp2 视频_svcd -o svcd_stream.mpg

-f 4

生成 SVCD 流

-b 200

由播放设备指定视频缓冲区大小。

对于其他视频输出格式,这可能有效:

> mpeg2dec -s -o 管道 测试2.mpg pgm玩具4m -a 59:54 -r 25:1 -i t 尤夫斯卡勒 -O
尺寸_320x200 -O NOT_INTERLACED mpeg2enc -o 奇怪的视频.m1v

如果您想编辑 mpeg 流,这也可以使用,但方式略有不同。 为了
解复用您可以使用 bbtools 包中的 bbdmux。 拆分视频或
音频非常干净。 你不能再从 Brent Beyler 的主页上得到它,它可以
当您使用该关键字搜索它时仍然可以找到“bbtools linux -suse
-黑盒子”。 目前它可以在以下位置找到:

第一次运行:

> BBDMUX 我的视频.mpg

你应该得到这样的东西:

找到流 id 0xE0 = 视频流 0
找到流 id 0xC0 = MPEG 音频流 0
找到流 id 0xBE = 填充流

提取音频:

> BBDMUX 我的视频.mpg 0xC0 音频.mp1

将其转换为 wav:

> mpg123 -w 音频文件 音频.m1v

提取视频:

> BBDMUX 我的视频.mpg 0xE0 视频.m1v

将视频转换为 mjpeg avi 流:

> mpeg2dec -o 管道 视频.m1v pgm玩具4m -a 59:54 -r 25:1 -i t 尤夫2拉夫 -f a -o
测试.avi

然后将声音添加到 avi:

> 拉瓦德瓦夫 测试.avi 音频文件 最终版.avi

如果源视频已经具有目标视频的大小,请使用 -o YUV。 使用 YUVh 使
视频一半大小! 其余的可以像编辑和编码其他一样完成
流。 如果您有带有 ac3 声音的视频,则只需调整上述命令即可。

提取音频:

> 测试2.mpg 提取_a52 - -s AC3DEC -o WAV 2>开发/空 >声音.wav

一步提取视频并添加音频:

> mpeg2dec -s -o 管道 pgm玩具4m -a 59:54 -r 25:1 -i t 尤夫斯卡勒 -O VCD 尤夫2拉夫 -f
a -q 85 -w 声音.wav -o 测试.avi

注意:您需要大量磁盘空间。 1GB 的视频大小约为 2GB,SVCD 格式和
当然,某些临时文件需要磁盘空间。 将视频转换为 mjpeg 也需要
一段时间。 在我的 Athlon 500 上,我的每秒帧数从未超过 6-7 帧。 你松了质量
每次将流转换为其他格式时! 交易质量/速度

如果绝对质量是您的目标,则可以使用 -4 实现适度的改进
和 -2 标志。 这些控制了 mpeg2enc 如何无情地丢弃
在搜索的早期阶段使用的相邻帧的部分
4*4 和 2*2 像素簇而不是单个像素。 设置 -4 1 -2 1 最大化
质量。 -4 4 -2 4 最大化速度。 注意,因为统计标准 mpeg2enc
用于丢弃看起来很糟糕的匹配通常是相当可靠的增加/减少
质量一般(但值得注意)。

减少对图像匹配部分的搜索半径也可以提高速度。
然而,由于搜索算法的工作方式,搜索半径实际上是四舍五入的
到最接近的 8 倍数。此外,在现代 CPU 上,通过减少
低于 16 的半径不足以使显着的质量降低值得
对于大多数应用程序。

创造 be 播放 磁盘 运用 软件 球员


通常 MPEG 播放器软件比内置于 DVD 和
VCD 播放器。 这种灵活性可以实现显着更好的压缩
对于相同的质量。 诀窍是生成使用大视频缓冲区的视频流
(500KB 或更多)和可变比特率编码(mpeg2enc 的 -f / -q 标志)。 软件
播放器通常也会正确播放更高效的 MPEG 层 3(是的,“MP3”
音频格式。 像 lame 这样好的 MP3 编码器将产生与第 2 层相当的结果
224Kbps 在 128Kbps 或 160Kbps.SMP 和分布式编码

分布式编码对于 2013 年的典型机器来说是一个非常黑暗的理论。所以大多数
用户可以安全地跳过那一点。 SMP 编码对于一般人来说更有趣
一台

mpeg2enc 尝试在并发执行的线程之间拆分工作的程度是
由 -M 或 --multi-thread [0..32] 选项控制。 这优化了 mpeg2enc
指定数量的 CPU。 默认情况下 (-M 1) mpeg2enc 运行时只需要一点多
线程:读取帧与压缩同时发生。 这样做是为了让
分割在多台机器上的编码管道(见下文)以高效工作
无需特殊的缓冲程序。 如果您在单 CPU 上编码
RAM 紧张的机器,您可能会发现通过设置完全关闭多线程
-M 0 稍微更有效地工作。

对于具有两个或更多处理器的 SMP 机器,您可以通过设置
您希望使用的并发执行编码线程的数量(例如 -M 2)。
在 2 路机器上设置 -M 3 或 -M 2 应该可以让您加快编码速度
80%。 可以接受大于 3 的值,但即使在 4 个 cpu 系统上也几乎没有影响。

如果您有一台真正快速的 SMP 机器(当前为 1.Aug.03),例如双 Athlon MP 2600 或
类似于 -M 2 和过滤的东西可能不会让两个(或更多)CPU 忙碌。
使用具有 10-20MB 缓冲区的缓冲区或 bfr 程序有助于保持两个 CPU 都处于忙碌状态。

显然,如果您的编码管道包含多个过滤阶段,则很可能
即使不使用 -M,您也可以让两个或多个 CPU 同时处于忙碌状态。 去噪使用
yuvdenoise 或 yuvmedianfilter 要求特别高,并且使用几乎同样多的处理
作为MPEG编码的力量。

如果您不止一台计算机,您还可以在计算机之间拆分编码管道
使用标准的“rsh”或“rcmd”远程shell执行命令。 例如,如果你
有两台电脑:

> RSH machine1 拉夫2yuv ”mycapture.eli 尤夫斯卡勒 -O SVCD 尤文去噪” mpeg2enc -f 4 -o
我的捕捉.m2vi

这里执行命令的计算机正在执行 MPEG 编码和“machine1”
是对捕获的视频进行解码缩放和去噪的机器。

显然,要使其工作,“machine1”必须能够访问视频和计算机
执行命令的地方必须为编码的视频留出空间。 在实践中,它是
通常非常值得使用“NFS”或其他包来设置网络文件存储,如果你
会做这样的事情。 如果你有三台电脑,你可以把这作为一个阶段
此外,一台计算机可以进行解码和缩放,另一台计算机可以进行去噪和
第三个可以做MPEG编码:

> RSH machine1 ”lav2yuv 我的捕获.eli 尤夫斯卡勒 -O 光盘” 雨声 RSH machine3
mpeg2enc -f 4 -o 我的捕获.m2v

注意:如何设置远程命令执行以便数据直接从
生产它的机器到消耗它的机器。

在实践中,为了值得您使用的网络必须足够快
避免成为瓶颈。 对于 Pentium-III 或更高级别的机器,您需要一个
100Mbps 以太网。

对于真正快速的机器,可能需要交换 100MBps 以太网(或更好!)。设置
rshd(rsh 执行其工作和配置“rsh”所需的“远程外壳守护程序”是
超出了本文档的范围,但它是一个标准包,应该很容易
在任何 Linux 或 BSD 发行版上安装并激活。

请注意,这可能是一个安全问题,因此请谨慎使用
对外部网络可见!互操作性

使用 lavrec 捕获的 Quicktime 文件可以使用 Broadcast2000 进行编辑。 但
Broadcast2000 在 heroinewarrior 上不再可用。 使用捕获的 mjpeg AVI 文件
xawtv包中的streamer工具可以编辑、压缩和播放
使用软件。 由于限制,此类文件无法进行硬件播放
当前支持的卓然硬件。 使用 NuppelVideo 录制的视频也可以
使用 mjpeg 工具处理。

如果您有 Macintosh (MAC) 并想使用 mjpeg 工具,请查看:

已知使用这些工具生成的 MPEG 文件可以正确播放:

dxr2(硬件解码卡)

xine的

电影

mplayer的

VLC

仅 MPEG-1:gtv

MS Media player 版本 6 和 7 及更高版本

基于软件的 DVD 播放器

要了解您的硬件播放器(大部分时间是 DVD 播放器)可以做什么,请查看:

如果您在以下情况下使用 -f 1 似乎 MS Media 播放器更喜欢 MPEG-1 流
复用。

如果您有任何问题或建议,请随时给我发邮件 (Bernhard Praschinger):有
是从安德鲁史蒂文斯创建的提示中添加的很多东西。 沃尔夫冈·戈勒和
Steven M. Schultz 检查了文档中的错误和拼写错误。

还有那些在程序描述和提示方面帮助过我的人, 谢谢

使用 onworks.net 服务在线使用 mjpegtools


免费服务器和工作站

下载 Windows 和 Linux 应用程序

Linux 命令

Ad




×
广告
❤️在这里购物、预订或购买——免费,有助于保持服务免费。