小编jos*_*sch的帖子

ogg vorbis 文件的无损连接

我有几个 ogg vorbis 文件,所有文件都使用我想要连接到单个文件的完全相同的属性进行编码。

我知道 ogg vorbis 格式支持多个文件的简单连接,例如:

$ cat file1.ogg file2.ogg > output.ogg
Run Code Online (Sandbox Code Playgroud)

但遗憾的是,并非所有播放器都能理解这样创建的文件,例如我的移动音频播放器,我会避免购买新的。其他不理解它的程序是 gstreamer。如果输入的 ogg 文件碰巧都具有相同的流 ID,则该方法也不起作用。

此外,由于我想扔掉原始文件并只保留连接的版本,因此我希望像cat解决方案一样无损地完成连接。

我还想避免将文件连接成像 flac 这样的无损格式,因为这会不必要地增加文件大小。如果那没问题,那么我可以保留原始的 ogg 文件并使用更少的空间。

似乎 ffmpeg 有时可以使用concat demuxer来做到这一点:

$ cat inputs.txt
file 'in1.ogg'
file 'in2.ogg'
$ ffmpeg -f concat -i inputs.txt -c copy out.ogg
Run Code Online (Sandbox Code Playgroud)

如果我查看输入文件的原始十六进制转储,那么我可以找到在输出文件中准确表示的 vorbis 数据包。所以我想真的没有重新编码发生。

但这似乎不适用于所有输入文件。有时(不确定是什么触发了这个),ffmpeg 会发出警告:

Non-monotonous DTS in output stream 0:0; previous: 5011328, current: 5011200; changing to 5011329. This may result in incorrect timestamps in the output file.
Run Code Online (Sandbox Code Playgroud)

然后我会听到两个文件之间非常微弱的“间隙”。因此,这当然不是全球解决方案。

由于找不到,我尝试在此 …

audio ogg vorbis cat lossless

14
推荐指数
2
解决办法
3659
查看次数

未启用交换的休眠

我的笔记本电脑有足够的内存和 SSD。为了不磨损 SSD,我不想一直使用交换。如果一个进程使用了​​太多的 RAM 以至于它不得不开始使用交换,那么它显然是行为不端,应该被内核杀死。但我也希望能够休眠或混合睡眠我的笔记本电脑。目前似乎很难让这样的设置工作。以下是一些注意事项:

  • swappiness如果应用程序请求太多内存,即使设置为 0 也将允许使用交换。似乎没有办法启用交换但阻止内核将其用作交换空间(从而将其效用减少到休眠图像的空间)
  • 禁用交换(临时)将导致诸如systemctl hibernate错误输出之类的命令Failed to hibernate system via logind: Sleep verb not supported
  • 我希望 upower 能够将我的系统置于休眠/混合睡眠状态(因此编写一个启用交换然后启动的包装脚本systemctl hibernate是不够的)

我现在正在寻找实现这一目标的正确方法。一种方法可能是通常禁用我的交换分区,然后swapon通过 systemd 在正确的点(以及swapoff在系统唤醒后)。但我不知道如何实现这一目标。

另一种方法是使用交换文件,但与使用交换分区相比,这似乎增加了额外的复杂性。尤其是因为我正在使用全盘加密,而且uswsusp似乎只是我现有交换分区已有的另一层。但也许我遗漏了一些东西,为此目的使用交换文件确实总体上更容易。

linux hibernate ssd swap systemd

9
推荐指数
1
解决办法
4658
查看次数

如何使用命令行工具批量处理 pdf 中的每个图像?

是否存在适用于 Linux 的命令行工具,它允许我从 PDF 中提取所有 /Subtype /Image 光栅图像对象,允许我使用另一个 3rd 方工具处理它们,然后能够将它们重新插入原始 PDF?

Debian 软件包 poppler-utils 带来了 pdfimages 工具,它允许我从 PDF 中提取所有图像,但在更改它们后我无法轻松地将它们重新插入 PDF。

我之前为 PDF 编写了简单的解析器,所以我目前对这个问题的看法是

  1. 在 PDF 上运行 pdfclean(来自 mupdf 包)以解压缩所有流,从而使解析更容易
  2. 用一个简单的解析器解析 pdf(当然这将无法解析大多数 PDF,但只要它适用于我的 PDF 我很高兴)并将所有图像提取为位图,并在其名称中包含对象 id
  3. 使用 3rd 方程序在图像上做一些 foo
  4. 再次解析原始 pdf,但这次用修改后的图像替换里面的图像,根据需要调整 /Length 和 /Filter
  5. 再次运行 pdfclean 以更正外部参照表中的所有偏移

但也许一个允许所有这些并且不限于我编写的简单解析器的功能的工具已经存在?

如果你说这样的工具不存在,那么告诉我一个允许提取和稍后替换图像的库也是可以的。

linux pdf batch command-line images

5
推荐指数
2
解决办法
1918
查看次数

标签 统计

linux ×2

audio ×1

batch ×1

cat ×1

command-line ×1

hibernate ×1

images ×1

lossless ×1

ogg ×1

pdf ×1

ssd ×1

swap ×1

systemd ×1

vorbis ×1