📚 我的文章

ffmoeg多音频合成(混流)使用方法

ffmpeg -i INPUT1 -i INPUT2 -i INPUT3 -filter_complex amix=inputs=3:duration=firs…

ffmpeg -i INPUT1 -i INPUT2 -i INPUT3 -filter_complex amix=inputs=3:duration=first:dropout_transition=3 OUTPUT

它接受下列参数:

inputs

输入数。如果没有指定,默认为2。

duration

如何确定流的结尾。

longest

最长的输入时间。(默认)

shortest

最短的输入时间。

first

第一个输入的时间。

dropout_transition

当输入流结束时,体积重整化的过渡时间(以秒为单位)。默认值是2秒。

ffmpeg 多音轨混合成多声道

使用FFmpeg制作多声道视频

将8个音轨混合成双声道

ffmpeg -i input.mkv -filter_complex "[0:1][0:2][0:3][0:4][0:5][0:6][0:7][0:8] amerge=inputs=8" -c:a pcm_s16le output.mkv

ffmpeg获取display_picture_number对应帧信息

使用方式 #

ffmpeg -i input  -vf "select=eq(n\,15237)",showinfo -an -f null  /dev/null

输出结果 #

15237为display_picture_number

[Parsed_showinfo_1 @ 0x41ca760] n:   0 pts:54860400 pts_time:609.56  pos:427032896 fmt:yuv420p sar:1/1 s:1920x1080 i:T iskey:0 type:B checksum:A2FB0133 plane_checksum:[7E1FA1A9 3D005549 67BC0A32] mean:[92 127 134] stdev:[62.5 9.2 20.7]

参数解释 #

### showinfo ### 不改变输入而在行中显示每帧信息。
显示的信息以`key/value`的序列形式给出
下面是将显示在输出中的值:

- n
帧序数,从0开始计数

- pts
输入帧的时间戳,以时基为单位,时间依赖于输入

- pts_time
按秒计的时间戳

- pos
输入帧在输入流中的偏移定位,-1表示信息不可用和/或无意义(例如合成视频中)

- fmt
像素格式名

- sar
输入帧的宽高比,表示为`num/den`格式

- s
输入帧尺寸,语法同于[视频尺寸(分辨率)](ffmpeg-doc-cn-07.md#视频尺寸(分辨率))

- i
交错模式 ("P"对应 "逐行", "T" 对应上场优先, "B"为下场优先t)

- iskey
为1表示是关键帧,0则不是

- type
输入帧图片类型 ("I"对应I帧, "P" 对应P帧, "B" 对应B帧,或者 "?"对应未知类型).参考定义与`libavutil/avutil.h`中的`av_get_picture_type_char`函数和`

- checksum
输入帧所有信息内容的 Adler-32校验值 (以16进制输出)

- plane_checksum
输入帧所有信息内容的 Adler-32校验值 (以16进制输出), 以格式"[c0 c1 c2 c3]"显示

ffmpeg音频合成命令全集

等有时间了再将其翻译一下,源网址->传送门

stereo → mono stream

Mix a single stereo

stream down to …

等有时间了再将其翻译一下,源网址->传送门

stereo → mono stream #

![stereo to mono diagram](https://trac.ffmpeg.org/raw-
attachment/wiki/AudioChannelManipulation/stereo_mono.png)Mix a single stereo

...

ffmpeg逐行扫描转隔行扫描

命令参数 #

ffmpeg -i input -aspect 16:9 -c:v mpeg2video -b:v 4000k -minrate 4000k -maxrate 4000k -bufsize 2000k -dc 9 -flags +ilme+ildct -alternate_scan 1 -top 0 output

其实主要的就是如下参数:

-flags +ilme+ildct -alternate_scan 1 -top 0

alternate_scan使用隔行转码,top不一般没有什么要求的话頂场优先就可以了。

...

H.264:i帧,p帧,b帧介绍

i帧

帧内编码帧,i帧表示关键帧,它保留了一副画面完整的数据信息,解码的时候只需要这归真数据就可以完成(因为i帧里面包含了花面狸免得所有信息)

i帧的特点

...

H.264NAL头解析

H.264 NAL头解析 如果NALU对应的Slice为一帧的开始,则用4字节表示,即0x00000001;否则用3字节表示,0x000001。

NAL

He…

H.264 NAL头解析 如果NALU对应的Slice为一帧的开始,则用4字节表示,即0x00000001;否则用3字节表示,0x000001。

...

iOS FFmpeg集成

FFmpeg标准库

概念:

FFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。

采用LGPL或GPL许可证。它提供了录制…

...

linux apache mysql php 优化

none

一、准备环境 #

1、安装mysql #

#cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql5.5 -DMYSQL_DATADIR=/usr/local/mysql5.5/data -DSYSCONFDIR=/usr/local/mysql5.5/etc -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITH_PERFSCHEMA_STORAGE_ENGINE=1 -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DENABLED_LOCAL_INFILE=1 -DWITH_EXTRA_CHARSETS=all
#make
#make install

2、安装nginx #

#./configure --prefix=/usr/local/nginx --http-log-path=/var/log/nginx/access.log --error-log-path=/var/log/nginx/error.log --pid-path=/var/run/nginx/nginx.pid --user=daemon --group=daemon --with-pcre
#make && make install

3、安装php #

#./configure --prefix=/usr/local/php5 --enable-bcmath --with-mysql=/usr/local/mysql5.5 --enable-fpm --with-fpm-user=daemon --with-fpm-group=daemon --with-config-file-path=/usr/local/php5
#make && make install

4、使nginx支持php #

(1)nginx配置 #

location ~ \.php$ {
root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /usr/local/nginx/html$fastcgi_script_name;
include fastcgi_params;
}

(2)php配置 #

#vim /usr/local/php5/etc/php-fpm.conf
#cd /usr/local/php5/sbin
#./php-fpm -c /usr/local/php5/etc/php-fpm.conf

二、php优化 #

注意:如何添加php功能模块 例:安装mbstring多字节支持功能模块

...

linux bash截取字符串的几种方法

号截取,删除左边字符,保留右边字符 #

var=http://www.aaa.com/123.htm

echo ${var#*//}

其中var是变量名,…

# 号截取,删除左边字符,保留右边字符 #

var=http://www.aaa.com/123.htm
echo ${var#*//}

其中var是变量名,#号是运算符, 号是通配符,//表示从左边开始删除第一个到//处的所有字符即删除http://

...