archlinux下i3-wm突然登录不进去问题

今天i3-wm突然登录不进去问题(2018-03-31)

  1. 每次输入密码登录之后又回到登录界面,完全摸不着头脑,也没有看到错误信息。

  2. 后来发现是有错误提示信息,在我ctrl+alt+fx(f1~f6)切入到别的字符界面控制台之后,但是没有仔细研究这个提示,结合dmesg命令之后判断应该是磁盘有坏道造成的。

  3. 关键错误提示:

    Buffer I/O error on dev sda10, logical block 8421888print_req_error: I/O error, dev sda, sector 1449822208 这两点。

  4. 第一条信息是最关键的,可惜我一直没有重视,只看到第二条了。

  5. 看到网上有一篇文章是关于磁盘坏道修复的,使用到的工具为smartctl,安装yaourt -S gsmartcontrol

  6. 根据文章写的步骤,第一步我发现1449822208属于/dev/sda10,这时我发现了我这第3步关键错误信息提示里的与这里的/dev/sda10提示的是一样的,然后结合这篇文章,我有些明白了block 8421888的含义了。

  7. 根据上面文章里的第四步,使用工具debugfs,详见debugfs使用简述,我找到坏道这里损坏的文件是/home/sting/.Xauthority,这时突然就明白了为什么会登录不进去了

  8. Xauthority,是startx脚本记录文件。Xserver启动时,读文件~/.Xauthority,读入对应其display的记录。当一个需要显示的客户程序启动调用XOpenDisplay()也读这个文件,并把找到的magic code 发送给Xserver。当Xserver验证这个magic code正确以后,就同意连接啦。观察startx脚本也可以看到,每次startx运行,都在调用xinit以前使用了xauth的add命令添加了一个新的记录到~/.Xauthority,用来这次运行X使用认证

  9. 知道问题所在了就好办,使用startx自动生成.Xauthority文件

  10. crtl+alt+f7,重新登录果然进来了,问题解决。

总结:

  • 在登录界面登录不进来,不一定是这个问题,但这个问题会导致登录不了,又多了一个解题思路 🙂
  • 要仔细研究系统给出的错误提示信息

在Linux下用FFmpeg制作自己喜欢的小视频

前言

你想在Linux下自由的创作自己的视频吗?快来试试FFmpeg吧!

  • 查看自己屏幕分辨率
xrandr
注:"xrandr" 是一款官方的 RandR Wikipedia:X Window System 扩展配置工具。它可以设置屏幕显示的大小、方向、镜像等。比如屏幕分辨率是1366×768

  • 屏幕录制
ffmpeg -video_size 1366x768 -framerate 25 -f x11grab -i :0.0+0,0 -f pulse -ac 2 -i default `date +%Y-%m-%d_%H:%M:%S`.mp4
    注:如果提示:The encoder 'aac' is experimental but experimental codecs are not enabled, add '-strict -2' if you want to use it.
    则按提示增加参数'-strict -2',如:ffmpeg -video_size 1366x768 -framerate 25 -f x11grab -i :0.0+0,0 -f pulse -ac 2 -i default -strict -2 `date +%Y-%m-%d_%H:%M:%S`.mp4

  • 给视频增加或修改背景音乐
ffmpeg -i input.mp3 -i output.mp4 [-strict -2](可选) output.mp4
注:如果视频和音频时间不一样长,需要自己额外处理

  • 视频截取
ffmpeg -i input.mp4 -ss 00:00:10 -t 120 output.mp4
注:从第10秒开始,截取120秒

  • 打马赛克
ffmpeg -i input.mp4 -filter_complex "crop=298:80:115:38, boxblur=10[blurLogo1]; [v:0] [blurLogo1]overlay=115:38" -c:a copy -y output.mp4
注:打马赛克,其实是先从原视频里截取一个小区域并模糊处理,产生新视频,然后再把新视频合并回去,这样看起来原视频的某个区域就像打了马赛克一样

  • 加Logo水印
ffmpeg -i input.mp4 -i ../watermark.jpg -filter_complex "overlay=main_w-overlay_w-55:5" -codec:a copy output.mp4
注:在overlay的位置加上watermark.jpg图片

  • 从视频中截图
ffmpeg -i input.mp4 -y -f image2 -t 0.001 -ss 10 -s 1280x720 output.jpg
注:在视频的第10秒处生成1280×720的图片

  • 制作GIF图
ffmpeg -ss 10 -t 5 -i input.mp4 -r 10 -vf scale=-1:144 -y output.gif
注:从视频的第10秒开始计时5秒生成GIF图片

  • 合并视频
vim filelist.txt
file 'input1.mp4'
file 'input2.mp4'
file 'input3.mp4'
ffmpeg -f concat -i filelist.txt -c copy output.mp4
注:如果有三个视频文件需要合并,建立一个txt文本,把文件名写入,然后用命令合并

  • 混合音频
ffmpeg -i input1.mp3 -i input2.mp3 -filter_complex amix=inputs=2:duration=first:dropout_transition=2 -f mp3 output.mp3
-i 代表输入参数
-filter_complex ffmpeg滤镜功能,非常强大
    amix 是混合多个音频到单个音频输出
    inputs=2 代表是2个音频文件,如果更多则代表对应数字
    duration 确定最终输出文件的长度 longest(最长)|shortest(最短)|first(第一个文件)
    dropout_transition 结束后的过度时间,默认为2秒.
-f mp3  输出文件格式

  • 多张图片制作成视频
ffmpeg -f image2 -r 0.5 -i ./image%01d.jpg -vcodec libx264 -t 120 output.mp4
-r 代表每秒播放图片的帧数,比如,0.5代表每秒播放0.5帧的图片,即是每张图片播放2秒
-i 当前目录下的图片,名称image+数字规律命名的,%01d代表数字,0~99就是01d,0~999即是02d,以此类推
-t 视频时长,设置了-r,好像这个参数就不起作用了,t = (1 / r) * 图片数量,单位秒
  • 给视频增加字幕
ffmpeg -i input.mp4 -vf subtitles=字幕文件.srt output.mp4
字幕文件制作格式(括号里为说明):
1(第一段)
00:00:00,180 --> 00:00:01,800(时间,时:分:秒,毫秒)
什么是比特币?(内容)

2(第二段)
00:00:01,900 --> 00:00:04,900(时间,时:分:秒,毫秒)
比特币是第一个(内容)
去中心化的数字货币。

字幕文件下载地址
完成后的视频地址