2010年11月17日星期三

Video/Audio Encoding Cheat Sheet


This is a small personal cheat sheet for encoding audio/video encoding where I put some of my most used stuff with FFmpeg and other tools.
I use H.264 and AAC on MP4, M4V or MKV container most of the time.
If you have any question just contact me.


在bash里进行数学运算

在bash里进行数学运算



KeyShortCuts

  • o - login/logout
  • e - edit
  • h - histories
  • v - recently views
  • m - recently modifies
  • w - go home
  • [ - go to previous
  • ] - go to next
  • u - lock/unlock
  • c - passwd
  • Accesskey(s) - save
  • AccessKey(c) - discard

无需转换成HTML页面,让Google能搜索到动态页面

Internet上网站数量的增多,网站的宣传越来越多地依赖搜索引擎的搜索结果,怎样让搜索引擎更好地为站点服务与提高站点的访问量有着非常密切的关系。搜索引擎并非是上帝的赠送给Internet产物,搜索引擎其本身既是站点,同时也是由各个程序来建设的。而各种搜索引擎一般都使用一种称为搜索引擎机器人的技术,这种机器人会根据一定规则的在Internet上访问站点,并把有价值的页面收集到搜索引擎的缓存数据库保存。一旦有用户来搜索,那么搜索引擎会直接在其缓存中搜索结果,并将结果报给用户。

Linux Shell Bash 数学计算命令

"操作数字"
factor

将一个正数分解为多个素数,使它们的乘积等于正数.
bash$ factor 27417
27417: 3 13 19 37


非常好的BASH脚本编写教程

这里有个老American写的 BASH脚本编写教程,非常不错,至少没接触过BASH的也能看懂!

建立一个脚本

Linux中有好多中不同的shell,但是通常我们使用bash (bourne again shell) 进行shell编程,因为bash是免费的并且很容易使用。所以在本文中笔者所提供的脚本都是使用bash(但是在大多数情况下,这些脚本同样可以在 bash的大姐,bourne shell中运行)。

如同其他语言一样,通过我们使用任意一种文字编辑器,比如nedit、kedit、emacs、vi 等来编写我们的shell程序。

程序必须以下面的行开始(必须方在文件的第一行):

#!/bin/sh

iphone支持视频格式

支持视频格式:H.264 视频,高达 1.5 Mbps,640 x 480 像素,每秒 30 帧,Low-Complexity 版本的 H.264 Baseline Profile 采用 AAC-LC 音频,高达 160 Kbps,48kHz,立体声音频为 .m4v、.mp4 和 .mov 文件格式;H.264 视频,高达 2.5 Mbps,640 x 480 像素,每秒 30 帧,Baseline Profile 高达 Level 3.0 采用 AAC-LC 音频,每声道高达 160 Kbps,48kHz,立体声音频为 .m4v、.mp4 和 .mov 文件格式; MPEG-4 视频,高达 2.5 Mbps,640 x 480 像素,每秒 30 帧,Simple Profile 采用 AAC-LC 音频,高达 160 Kbps,48kHz,立体声音频为 .m4v、.mp4,和 .mov 文件格式。

ffmpeg使用x264编码的配置+ ffmpeg与 x264编码器参数完整对照表

使用ffmpeg进行.264编码的相关文章比较少,google了一下,特总结如下:
  • qscale的取值可以是0.01-255但实际使用超过50就很糟糕了
  • ffmpeg的cbr模式可以把码率控制的不错,但是vbr无法限制最高码率(虽然有max的设置,但是程序没有实现)
  • x264标准的封装是x264+aac in flv或者x264+aac in MP4
接下来说明下ffmpeg命令行的语法规则(本块内容来自2009-03-02官方文档):


语法规则结构:
ffmpeg [[infile options][`-i' infile]]... {[outfile options] outfile}...



ffmpeg使用x264编码的配置+ ffmpeg与 x264编码器参数完整对照表

注:讲实话,有关这些使用的文章真的不错,我们在这谢谢"SV的边界"本来我自己还想总结一下的。看来没有必要了,呵呵,在次多谢"SV的边界".下面原文

使用ffmpeg进行.264编码的相关文章比较少,google了一下,特总结如下:

qscale的取值可以是0.01-255但实际使用超过50就很糟糕了
ffmpeg的cbr模式可以把码率控制的不错,但是vbr无法限制最高码率(虽然有max的设置,但是程序没有实现)
x264标准的封装是x264+aac in flv或者x264+aac in MP4
接下来说明下ffmpeg命令行的语法规则(本块内容来自2009-03-02官方文档):

语法规则结构:

ffmpeg [[infile options][`-i' infile]]... {[outfile options] outfile}...一个最简单的命令形式:

ffmpeg -i input.avi -b 64k output.avi
这个命令把视频以64k的码率重编码。

How to encode video in H264 format

http://h264.code-shop.com/trac/wiki/Encoding


Ffmpeg/x264 (profile High, level 3.0) (latest versions of x264)

各种工具之正则表达式语法比较

在各种常用的工具中,
正则表达式如此的相似却又不同。
下表列出了一些常用的正则表达式,以及其不同之处。
项目总多,遗漏必有不少,请各位看官不吝指出。
以perl的正则为基准,不同的用法以粉红色标出。


Bash系列:从命令行开始

Shell的精髓在于命令行
---无名氏语

先从几个简单的命令开始,认识Shell中命令
Shell代码
echo hello
echo -n hello
rm -f hello; touch hello
curl http://www.google.com/ | less

Linux系统下视频转换:Mencoder和Ffmpeg

◆Linux下的视频转换:mencoder

制作适合在智能手机和PDA上观看的mpeg4视频。

Linux上有一个很强大的视频音频转换软件,就是Mplayer自带的mencoder (MPlayer's Movie Encoder)。mencoder就象是一台全手动的照相机,可调整的选项非常多,不过这儿只是把最常见的情况说一下。

关于ffmpeg中的VBR控制

很多朋友问起我关于ffmpeg中VBR的问题,主要是该设置哪些参数,该如何设置等问题。以前我也没有研究过ffmpeg的VBR,所以就在网上查找了一下,无功而返,后面就看ffmpeg.c的源代码,初步认为通过下面的参数或选项便可以实现VBR的控制:

用ffmpeg转换apple ipod touch 3.1专用视频格式mp4的命令行代码

ffmpeg -y -i s.flv -vcodec libx264 -s 640x360 -b 2M -flags +loop -cmp +chroma -partitions +parti4x4+partp8x8+partb8x8 -me_method umh -subq 5 -trellis 1 -refs 1 -coder 0 -me_range 16 -g 300 -keyint_min 25 -sc_threshold 40 -i_qfactor 0.71 -bt 2M -maxrate 2M -bufsize 2.5M -rc_eq 'blurCplx^(1-qComp)' -qcomp 0.6 -qmin 10 -qmax 51 -qdiff 4 -level 30 -aspect 16:9 -acodec libfaac -ab 128k OUTPUT.mp4

-i 后面的是你的输入文件

OUTPUT.mp4 是输出文件

几种shell里的小括号,大括号结构和有括号的变量,命令的用法

我一下子也想不起该起什么标题,就取了这样一个不太合适的标题。
在这里我想说的是几种shell里的小括号,大括号结构和有括号的变量,命令的用法,如下:
PHP 代码:
1.${var}
2.$(cmd)
3.()和{}
4.${var:-string},${var:+string},${var:=string},${var:?string}
5.$((exp))
6.$(var%pattern),$(var%%pattern),$(var#pattern),$(var##pattern)

ffmpeg转ipod参数设置

iPod video guide

Encoding videos suitable for iPods

Thanks to “cartman” on the FreeNode IRC network for testing and providing information for this guide.

The “new” higher resolution capability of the iPod video uses something Apple have dubbed a “Low Complexity” version of the Baseline Profile of H.264. Thankfully someone discovered what this meant. (See here for details - credit goes to Tyler Loch for this information.)

At first I wondered what the use of 640×480 video on a 320×240 screen would be but I was informed that these devices have a TV out. Fun. Anyway, on to the good stuff.

shell: 字符串处理

对字符串的处理
包括:截取,连接,匹配,替换,翻转... ...

BASH学习笔记——sed

1. Sed简介

sed
是一种在线编辑器,它一次处理一行内容。处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern
space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。文件内容并没有
改变,除非你使用重定向存储输出。Sed主要用来自动编辑一个或多个文件;简化对文件的反复操作;编写转换程序等。以下介绍的是Gnu版本的Sed3.02。

批处理实现一行内容分行输出的代码

a.txt:

aA1一bB2二cC3三dD4四eE5五fF6六gG7七hH8八iI9九
输出如下:
abcdefghi
ABCDEFGHI
123456789
一二三四五六七八九
唯一要求,老手略过,留给新手做练习,不能直接echo。
请先发现其中的规律。
其他,生成临时文件、代码超过一页都不重要,正确输出即可。

bash中字符串的处理

1.得到字符串长度
方法一:
$echo ${#variable}
code:

shell 字符串操作

得到长度
代码:

%x="abcd"
#方法一
%expr length $x
4

Bash字符串的操作

(一)字符串的替换
(1)
${变量1/查找字符/替换字符}
(说明一下,这个操作中除了第一个参数是变量外其它两个都是字符;还有一点就是这个操作并不是把“变量1”中的字符替换了,详见例子)

正则表达式、sed与awk

课程名称
UNIX系统与软件开发环境

教学章节
正则表达式, 流编辑(sed), 模式搜索与处理(awk)

教学目的
掌握正则表达式的概念及用法,了解流编辑和模式搜索与处理

教学重点
正则表达式

mencoder和ffmpeg参数详解

Mencoder 转 flv
mencoder -ffourcc FLV1 -lavfopts i_certify_that_my_video_stream_does_not_use_b_frames -of lavf -oac mp3lame -lameopts aq=9:cbr:br=64:vol=2 -ovc lavc -lavcopts vcodec=flv:vbitrate=200:acodec=mp3:abitrate=56 -vf scale=320:270,expand=320:270:::1,crop=320:270:0:0 -ofps 18 -srate 22050 input.xxx -o output.flv