VI的使用
--------------------------------------------------------------------------------
一、插入文本
┌──┬────────────┐
│命令│描述 │
├──┼────────────┤
│i │在当前字符前插入文本 │
├──┼────────────┤
│I │在行首插入文本 │
├──┼────────────┤
│a │在当前字符后添加文本 │
├──┼────────────┤
│A │在行末添加文本 │
├──┼────────────┤
│o │在当前行后面插入一空行 │
├──┼────────────┤
│O │在当前行前面插入一空行 │
├──┼────────────┤
│R │以改写方式输入文本 │
└──┴────────────┘
二、移动光标
┌─────┬───────────┐
│命令 │描述 │
├─────┼───────────┤
│j或下箭头 │向下移动一行 │
├─────┼───────────┤
│k或上箭头 │向上移动一行 │
├─────┼───────────┤
│h或左箭头 │左移一个字符 │
├─────┼───────────┤
│l或右箭头 │右移一个字符 │
├─────┼───────────┤
│w │右移一个词 │
├─────┼───────────┤
│W │右移一个以空格分隔的词│
├─────┼───────────┤
│b │左移一个词 │
├─────┼───────────┤
│B │左移一个以空格分隔的词│
├─────┼───────────┤
│0 │移到行首 │
│Ctrl-F │向前翻页 │
├─────┼───────────┤
│Ctrl-B │向后翻页 │
├─────┼───────────┤
│nG │到第n行 │
├─────┼───────────┤
│G │到最后一行 │
└─────┴───────────┘
三、替换文本
┌─────┬──────┐
│命令 │描述 │
├─────┼──────┤
│$ │到行尾 │
├─────┼──────┤
│( │到句子的开头│
├─────┼──────┤
│) │到句子的末尾│
├─────┼──────┤
│{ │到段落的开头│
├─────┼──────┤
│} │到段落的末尾│
└─────┴──────┘
四、删除文本
┌───┬───────────┐
│命令 │描述 │
├───┼───────────┤
│r │替换一个字符 │
├───┼───────────┤
│c │修改文本直到按下Esc健 │
├───┼───────────┤
│cw │修改下一个词 │
├───┼───────────┤
│cnw │修改接下来的n个词 │
└───┴───────────┘
五、文本编辑
┌──┬──────────────────────┐
│命寺│描述 │
├──┼──────────────────────┤
│yy │将一行文本移到缺省缓冲区中 │
├──┼──────────────────────┤
│yn │将下一个词移到缺省缓冲区中 │
├──┼──────────────────────┤
│ynw │将后面的n个词移到缺省缓冲区中 │
├──┼──────────────────────┤
│p │如果缺省缓冲区中包含一行文本,则在当前 │
│ │行后面插入一个空行井将缺省缓冲区中的声 │
│ │容粘贴到这一行中;如果缺省缓冲区中包含 │
│ │多个词,把这些词粘贴到光标的右边. │
├──┼──────────────────────┤
│P │如果缺省缓冲区中包含一行文本,则正当前 │
│ │行前面插入一个空行井将缺省缓冲区中的内 │
│ │容粘贴到这一行中;如果缺省缓冲区中包含 │
│ │多个词,把这些词粘贴到光标的左边
│
└──┴──────────────────────┘
六、保存退出
┌───────────┬───────────────┐
│命令 │描述 │
├───────────┼───────────────┤
│zz │保存并退出 │
├───────────┼───────────────┤
│:w filename │写入文件 │
├───────────┼───────────────┤
│:W │写入文件 │
├───────────┼───────────────┤
│:x │保存(如果当前文件修改过)并退出│
├───────────┼───────────────┤
│:q! │不保存文件,直接退出 │
├───────────┼───────────────┤
│:q │退出vi │
FFmpeg在Linux下的简单安装并与Java结合获取视频缩略图功能实现
最新推荐文章于 2024-08-16 09:35:11 发布
【下载ffmpeg】:
下载地址:
http://www.ffmpeg.org/download.html(官网)
【
解压
】:
使用SSH或者FTP工具将下载的文件上传至linux服务器;
解压:
tar xvfj ffmpeg-0.4.9-p20051120.tar.bz2
得到解压后的目录是ffmpeg-0.4.9-p20051120,名字太长,利用mv命令改为ffmpeg:
mv ffmpeg-0.4.9-p20051120 ffmpeg
【
配置
】:
进入ffmpeg解压目录:
cd ffmpeg/
进行配置:
./configure --enable-shared --prefix=/usr/local/ffmpeg
注意:此时预编译可能会有预警错误,一般大多数是没有安装其他程序。请自行安装后,确保无错误(因为本人在这里踩过坑)
其中:--enable-shared 是允许其编译产生动态库,在以后的编程中要用到这个几个动态库。--prefix设置的安装目录。
【
编译并安装
】:
make
make install
【安装之后在/usr/local/ffmpeg会看到有三个目录】:
lib 动态链接库位置
include 编程要用到头文件
bin 执行文件所在的目录
【配置Path】:
安装完成以后并不能直接使用
ffmpeg 命令执行,系统会提示并没有这样的命令,需要进一步进行配置Path:
编辑profile文件:
vi /etc/profile
i (插入)
在文件末尾加上两句话:
export FFMPEG_HOME=/usr/local/ffmpeg
export PATH=$FFMPEG_HOME/bin:$PATH
保存并退出:
按Esc键 输入:wq! 回车
使修改生效:
source /etc/profile
【如果启动报错】:
若出现error while loading shared libraries:libavdevice.so.52错误,需要修改文件ld.so.conf。
修改
ld.so.conf:vi /etc/ld.so.conf
在末尾加上一句话:
/usr/local/ffmpeg/lib
注意:此时这个地方在末尾加的一句话 必须换行 踩过坑
保存并退出:
按Esc键 输入:wq! 回车
使修改生效:
ldconfig -v(有的没有这个 -v)
修改/usr/local/ffmpeg/lib目录下的文件权限为777:
cd /usr/local/ffmpeg/lib/
chmod 777 *
【
使用Java与FFmpeg在linux上实现视频缩略图的截取】:
Java代码:
// 视频缩略图截取
// inFile 输入文件(包括完整路径)
// outFile 输出文件(可包括完整路径)
public static boolean transfer(String inFile, String outFile) {
String command = "ffmpeg -i " + inFile + " -y -f image2 -ss 00:00:10 -t 00:00:01 -s 176x144 " + outFile;
try {
Runtime rt = Runtime.getRuntime();
Process proc = rt.exec(command);
InputStream stderr = proc.getErrorStream();
InputStreamReader isr = new InputStreamReader(stderr);
BufferedReader br = new BufferedReader(isr);
String line = null;
while ((line = br.readLine()) != null)
System.out.println(line);
} catch (Throwable t) {
t.printStackTrace();
return false;
}
return true;
}
注意点:
在linux上生成视频缩略图的时候很有可能会出现,程序上没有抛出任何异常,但是就是缩略图没有生成,这个时候请考虑文件夹的
权限问题, 往往是因为没有权限写入导致。可以对你要生成的文件夹添加最高权限,如相对test文件夹加权限:
chmod 777 test/ 即可。
【
总结
】:
本文主要简单的介绍了FFmpeg的安装与简单的获取视频的缩略图功能,它还可以支持更多文件格式,做更多有用的事情,有兴趣的童鞋可以自行研究。
本文参考的两篇博文地址:
风里密码(FFmpeg在Linux下的安装):
Gerry(FFmpeg在Linux下的安装):