我正在尝试将我的视频库转换为 HEVC 格式以获得空间。我对库中的所有视频文件运行了以下命令:
#!/bin/bash
for i in *.mp4;
do
#Output new files by prepending "X265" to the names
avconv -i "$i" -c:v libx265 -c:a copy X265_"$i"
done
Run Code Online (Sandbox Code Playgroud)
现在,大多数视频转换良好,质量与以前相同。但是,一些质量非常高的视频(例如,一部 5GB 的电影印刷品)会降低质量——视频都是像素化的。
我不知道在这种情况下该怎么做。我需要修改crf命令行中的参数吗?或者是其他东西?
问题是,我正在进行批量转换。所以,我需要一种方法,avconv可以为每个视频自动调整任何需要调整的参数。
我发现这crf是我需要调整的旋钮。默认的 CRF 是 28。为了更好的质量,我可以使用小于 28 的值。例如:
avconv -i input.mp4 -c:v libx265 -x265-params crf=23 -c:a copy output.mp4
Run Code Online (Sandbox Code Playgroud)
但是,问题是对于某些视频,CRF 值 28 就足够了,而对于某些视频,则需要较低的 CRF。这是我必须通过转换大视频的小部分来手动检查的东西。但是在批量转换中,我将如何手动检查每个视频?他们有什么办法avconv可以根据输入的视频智能调整CRF吗?
我发现--losslessx265中有一个选项:http : //x265.readthedocs.org/en/default/lossless.html。
但是,我不知道如何正确使用它。我尝试以下列方式使用它,但它产生了相反的结果(视频更加像素化):
avconv -i input.mp4 -c:v libx265 -x265-params lossless -c:a copy …Run Code Online (Sandbox Code Playgroud) 我已经使用sed了很长一段时间,但这是我遇到的一个怪癖,我无法解决。
让我用实际案例来解释我的问题。
场景#1
printf "ls" | xclip -selection clipboard
echo "ls" | xclip -selection clipboard
Run Code Online (Sandbox Code Playgroud)
在第一个命令中,我通过管道将printf输出xclip复制到剪贴板。现在,printf, 不像echo默认情况下不会在末尾插入新行。因此,如果我将此内容粘贴到终端中,ls则复制的命令不会自动运行。
在第二个中,末尾有一个新行,因此粘贴剪贴板内容也会导致在剪贴板中运行命令。
这对我来说是不可取的。所以,我想使用 删除换行符sed,但它失败了,如下面的场景所述。
场景#2
echo "ls" | sed -r 's/\n//g' | xclip -selection clipboard
Run Code Online (Sandbox Code Playgroud)
剪贴板中的内容仍然包含换行符。当我将其粘贴到终端时,该命令会自动运行。
我也尝试删除回车符\r。但是纳达。看来我在这里遗漏了一些非常关键/基本的东西。
在 Vim 中,我设置了 Ctrl+箭头键来跳过单词。在 gnome-terminal 中运行 Vim 时,这工作得很好。
但是,当使用byobu (tmux) 时,它显示出奇怪的行为:它会删除光标后的所有内容。
作为参考,这些是我的 vim 设置:
:inoremap <C-Left> <C-\><C-O>b
:inoremap <C-Right> <C-\><C-O>w
Run Code Online (Sandbox Code Playgroud) 我用来trash-put从命令行垃圾文件。最近,我给我的rm命令取了别名,trash-put这样我就不会不小心删除一些重要的东西。
然而,现在发生的事情是我不得不从我的/var/log文件夹中删除一些文件以释放/文件系统上的一些空间。我这样做了sudo:
sudo rm /var/log/somelog
#Above command is equivalent to:
sudo trash-put /var/log/somelog
Run Code Online (Sandbox Code Playgroud)
执行此操作后,分区上没有恢复可用空间,因为文件肯定已移至某个垃圾桶。然而,当我检查我的垃圾桶时,没有文件。我试图查看分区.Trash-100上是否有文件夹/,但即便如此也不存在。
那么,我的垃圾文件去哪儿了?我如何找到它以便我可以抽取它以恢复一些空间?
我写了两个 C 程序
现在我想知道两个程序消耗的内存,看看如何优化内存。
我必须更改包含该属性的属性文件:
ro.product.firmware=0.0.1
Run Code Online (Sandbox Code Playgroud)
使用来自我的 bash 脚本不同部分中调用的函数的新值。我无法让正则表达式正常工作。对于这种特殊情况,我需要将值从 0.0.1 更改为 $1,但该值并不总是 0.0.1。我目前拥有的正则表达式是:
sed -i 's/^(ro\.product\.firmware).*$/(ro\.product\.firmware="$1")'
Run Code Online (Sandbox Code Playgroud) 我在我的目录中复制我的文件时遇到问题。
我在很多目录中有.txt和.jpeg文件,我只想.txt根据目录复制文件。例如,我有这个:
direct/direct1
direct/direct2
direct1:
file.txt
file2.txt
file.jpeg
file2.jpeg
direct2:
file3.txt
file4.txt
file3.jpeg
file4.jpeg
Run Code Online (Sandbox Code Playgroud)
在我的复制命令中,我只需要.txt每个目录中的文件
我有两个txt文件:
文件1.txt:
user1@domain.fr
user2@domain.fr
user3@domain.fr
user4@domain.fr
...
Run Code Online (Sandbox Code Playgroud)
文件2.txt:
user2@domain.fr
user4@domain.fr
Run Code Online (Sandbox Code Playgroud)
文件Iwouldhave.txt:
user1@domain.fr
user3@domain.fr
...
Run Code Online (Sandbox Code Playgroud)
我想将file2.txt 中的地址删除到file1.txt。
我该怎么做?