c# ffmpeg常用参数

c#  ffmpeg常用参数

转换文件格式的同时抓缩微图:

ffmpeg -i "test.avi" -y -f image2 -ss 8 -t 0.001 -s 350x240 ‘test.jpg‘

对已有flv抓图:

ffmpeg -i "test.flv" -y -f image2 -ss 8 -t 0.001 -s 350x240 ‘test.jpg‘

-ss后跟的时间单位为秒 Ffmpeg转换命令

ffmpeg -y -i test.mpeg -bitexact -vcodec h263 -b 128 -r 15 -s 176x144 -acodec aac -ac 2 -ar 22500 -ab 24 -f 3gp test.3gp

或者

ffmpeg -y -i test.mpeg -ac 1 -acodec amr_nb -ar 8000 -s 176x144 -b 128 -r 15 test.3gp       ffmpeg参数设定解说

-bitexact 使用标准比特率

-vcodec xvid 使用xvid压缩

-s 320x240 指定分辨率

-r 29.97 桢速率(可以改,确认非标准桢率会导致音画不同步,所以只能设定为15或者29.97)

画面部分,选其一

-b <比特率> 指定压缩比特率,似乎ffmpeg是自动VBR的,指定了就大概是平均比特率,比如768,1500这样的就是原来默认项目中有的

-qscale <数值> 以<数值>质量为基础的VBR,取值0.01-255,约小质量越好

-qmin <数值> 设定最小质量,与-qmax(设定最大质量)共用,比如-qmin 10 -qmax 31

-sameq 使用和源同样的质量 声音部分

-acodec aac 设定声音编码

-ac <数值> 设定声道数,1就是单声道,2就是立体声,转换单声道的TVrip可以用1(节省一半容量),高品质的DVDrip就可以用2

-ar <采样率> 设定声音采样率,PSP只认24000

-ab <比特率> 设定声音比特率,前面-ac设为立体声时要以一半比特率来设置,比如192kbps的就设成96,转换君默认比特率都较小,要听到较高品质声音的话建议设到160kbps(80)以上

-vol <百分比> 设定音量,某些DVDrip的AC3轨音量极小,转换时可以用这个提高音量,比如200就是原来的2倍 这样,要得到一个高画质音质低容量的MP4的话,首先画面最好不要用固定比特率,而用VBR参数让程序自己去判断,而音质参数可以在原来的基础上提升一 点,听起来要舒服很多,也不会太大(看情况调整       例子:ffmpeg -y -i "1.avi" -title "Test" -vcodec xvid -s 368x208 -r 29.97 -b 1500 -acodec aac -ac 2 -ar 24000 -ab 128 -vol 200 -f psp -muxvb 768 "1.***"

解释:以上命令可以在Dos命令行中输入,也可以创建到批处理文件中运行。不过,前提是:要在ffmpeg所在的目录中执行(转换君所在目录下面的cores子目录)。

参数:

-y(覆盖输出文件,即如果1.***文件已经存在的话,不经提示就覆盖掉了)

-i "1.avi"(输入文件是和ffmpeg在同一目录下的1.avi文件,可以自己加路径,改名字)

-title "Test"(在PSP中显示的影片的标题)

-vcodec xvid(使用XVID编码压缩视频,不能改的)

-s 368x208(输出的分辨率为368x208,注意片源一定要是16:9的不然会变形)

-r 29.97(帧数,一般就用这个吧)

-b 1500(视频数据流量,用-b xxxx的指令则使用固定码率,数字随便改,1500以上没效果;还可以用动态码率如:-qscale 4和-qscale 6,4的质量比6高)

-acodec aac(音频编码用AAC)

-ac 2(声道数1或2)

-ar 24000(声音的采样频率,好像PSP只能支持24000Hz)

-ab 128(音频数据流量,一般选择32、64、96、128)

-vol 200(200%的音量,自己改)

-f psp(输出psp专用格式)

-muxvb 768(好像是给PSP机器识别的码率,一般选择384、512和768,我改成1500,PSP就说文件损坏了)

"1.***"(输出文件名,也可以加路径改文件名)

开几个批处理文件,让它们并行处理。 E:\ffmpeg.exe -i I:\1.wmv -b 360 -r 25 -s 320x240 -hq -deinterlace -ab 56 -ar 22050 -ac 1 D:\2.flv

Ffmpeg使用语法

ffmpeg [[options][`-i‘ input_file]]... {[options] output_file}...

如果没有输入文件,那么视音频捕捉就会起作用。

作为通用的规则,选项一般用于下一个特定的文件。如果你给 -b 64选项,改选会设置下一个视频速率。对于原始输入文件,格式选项可能是需要的。

缺省情况下,ffmpeg试图尽可能的无损转换,采用与输入同样的音频视频参数来输出。

3.选项

a) 通用选项

-L license

-h 帮助

-fromats 显示可用的格式,编解码的,协议的。。。

-f fmt 强迫采用格式fmt

-I filename 输入文件

-y 覆盖输出文件

-t duration 设置纪录时间 hh:mm:ss[.xxx]格式的记录时间也支持

-ss position 搜索到指定的时间 [-]hh:mm:ss[.xxx]的格式也支持

-title string 设置标题

-author string 设置作者

-copyright string 设置版权

-comment string 设置评论

-target type 设置目标文件类型(vcd,svcd,dvd) 所有的格式选项(比特率,编解码以及缓冲区大小)自动设置 ,只需要输入如下的就可以了:

ffmpeg -i myfile.avi -target vcd /tmp/vcd.mpg

-hq 激活高质量设置

-itsoffset offset 设置以秒为基准的时间偏移,该选项影响所有后面的输入文件。该偏移被加到输入文件的时戳,定义一个正偏移意味着相应的流被延迟了 offset秒。 [-]hh:mm:ss[.xxx]的格式也支持

b) 视频选项

-b bitrate 设置比特率,缺省200kb/s

-r fps 设置帧频 缺省25

-s size 设置帧大小 格式为WXH 缺省160X128.下面的简写也可以直接使用:

Sqcif 128X96 qcif 176X144 cif 252X288 4cif 704X576

-aspect aspect 设置横纵比 4:3 16:9 或 1.3333 1.7777

-croptop size 设置顶部切除带大小 像素单位

-cropbottom size -cropleft size -cropright size

-padtop size 设置顶部补齐的大小 像素单位

-padbottom size -padleft size -padright size -padcolor color 设置补齐条颜色(hex,6个16进制的数,红:绿:兰排列,比如 000000代表黑色)

-vn 不做视频记录

-bt tolerance 设置视频码率容忍度kbit/s

-maxrate bitrate设置最大视频码率容忍度

-minrate bitreate 设置最小视频码率容忍度

-bufsize size 设置码率控制缓冲区大小

-vcodec codec 强制使用codec编解码方式。 如果用copy表示原始编解码数据必须被拷贝。

-sameq 使用同样视频质量作为源(VBR)

-pass n 选择处理遍数(1或者2)。两遍编码非常有用。第一遍生成统计信息,第二遍生成精确的请求的码率

-passlogfile file 选择两遍的纪录文件名为file

c)高级视频选项

-g gop_size 设置图像组大小

-intra 仅适用帧内编码

-qscale q 使用固定的视频量化标度(VBR)

-qmin q 最小视频量化标度(VBR)

-qmax q 最大视频量化标度(VBR)

-qdiff q 量化标度间最大偏差 (VBR)

-qblur blur 视频量化标度柔化(VBR)

-qcomp compression 视频量化标度压缩(VBR)

-rc_init_cplx complexity 一遍编码的初始复杂度

-b_qfactor factor 在p和b帧间的qp因子

-i_qfactor factor 在p和i帧间的qp因子

-b_qoffset offset 在p和b帧间的qp偏差

-i_qoffset offset 在p和i帧间的qp偏差

-rc_eq equation 设置码率控制方程 默认tex^qComp

-rc_override override 特定间隔下的速率控制重载

-me method 设置运动估计的方法 可用方法有 zero phods log x1 epzs(缺省) full

-dct_algo algo 设置dct的算法 可用的有 0 FF_DCT_AUTO 缺省的DCT 1 FF_DCT_FASTINT 2 FF_DCT_INT 3 FF_DCT_MMX 4 FF_DCT_MLIB 5 FF_DCT_ALTIVEC

-idct_algo algo 设置idct算法。可用的有 0 FF_IDCT_AUTO 缺省的IDCT 1 FF_IDCT_INT 2 FF_IDCT_SIMPLE 3 FF_IDCT_SIMPLEMMX 4 FF_IDCT_LIBMPEG2MMX 5 FF_IDCT_PS2 6 FF_IDCT_MLIB 7 FF_IDCT_ARM 8 FF_IDCT_ALTIVEC 9 FF_IDCT_SH4 10 FF_IDCT_SIMPLEARM

-er n 设置错误残留为n 1 FF_ER_CAREFULL 缺省 2 FF_ER_COMPLIANT 3 FF_ER_AGGRESSIVE 4 FF_ER_VERY_AGGRESSIVE

-ec bit_mask 设置错误掩蔽为bit_mask,该值为如下值的位掩码 1 FF_EC_GUESS_MVS (default=enabled) 2 FF_EC_DEBLOCK (default=enabled)

-bf frames 使用frames B 帧,支持mpeg1,mpeg2,mpeg4

-mbd mode 宏块决策 0 FF_MB_DECISION_SIMPLE 使用mb_cmp 1 FF_MB_DECISION_BITS 2 FF_MB_DECISION_RD

-4mv 使用4个运动矢量 仅用于mpeg4

-part 使用数据划分 仅用于mpeg4

-bug param 绕过没有被自动监测到编码器的问题

-strict strictness 跟标准的严格性

-aic 使能高级帧内编码 h263+

-umv 使能无限运动矢量 h263+

-deinterlace 不采用交织方法

-interlace 强迫交织法编码 仅对mpeg2和mpeg4有效。当你的输入是交织的并且你想要保持交织以最小图像损失的时候采用该选项。可选的方法是不交织,但是损失更大

-psnr 计算压缩帧的psnr

-vstats 输出视频编码统计到vstats_hhmmss.log

-vhook module 插入视频处理模块 module 包括了模块名和参数,用空格分开

D)音频选项

-ab bitrate 设置音频码率

-ar freq 设置音频采样率

-ac channels 设置通道 缺省为1

-an 不使能音频纪录

-acodec codec 使用codec编解码

E)音频/视频捕获选项

-vd device 设置视频捕获设备。比如/dev/video0

-vc channel 设置视频捕获通道 DV1394专用

-tvstd standard 设置电视标准 NTSC PAL(SECAM)

-dv1394 设置DV1394捕获

-av device 设置音频设备 比如/dev/dsp

F)高级选项

-map file:stream 设置输入流映射

-debug 打印特定调试信息

-benchmark 为基准测试加入时间

-hex 倾倒每一个输入包

-bitexact 仅使用位精确算法 用于编解码测试

-ps size 设置包大小,以bits为单位

-re 以本地帧频读数据,主要用于模拟捕获设备

-loop 循环输入流。只工作于图像流,用于ffserver测试

从FLV中截图以及相关PHP代码

从FLV中截图以及相关PHP代码

使用-ss参数 作用(time_off set the start time offset),可以从指定时间点开始转换任务。如:

转换文件格式的同时抓缩微图:

ffmpeg -i "test.avi" -y -f image2 -ss 8 -t 0.001 -s 350x240 ‘test.jpg" onload="resize(this,466,0)‘

对已有flv抓图:

ffmpeg -i "test.flv" -y -f image2 -ss 8 -t 0.001 -s 350x240 ‘test.jpg‘

-ss后跟的时间单位为秒

$streamPath = "./test.flv";

$newName = "myConvertedPic.jpg";

$imgW = 320;

$imgH = 240;

$imgQuality = 80;

$resultPath = "http://www.meinserver.de/snapit/".$newName.".jpg";

exec ("flv2jpg.exe", $streamPath, $newName, $imgW, $imgH, $imgQuality);

==================================================================================================

/usr/bin/ffmpeg -i /root/239.mpg -ar 22050 -b 1000k /root/239_4.flv

截取一张352x240尺寸大小的,格式为jpg的图片:

ffmpeg -i test.asf -y -f image2 -t 0.001 -s 352x240 a.jpg

把视频的前30帧转换成一个Animated Gif :

ffmpeg -i test.asf -vframes 30 -y -f gif a.gif

使用-ss参数,可以从指定的时间开始处理转换任务.如:

ffmpeg -i test2.asf -y -f image2 -ss 08.010 -t 0.001 -s 352x240 b.jpg

ffmpeg 转 FLV 的参数

ffmpeg -i x:\*.mpg -ab 56 -ar 22050 -b 500 -r 15 -s 320x240 x:\*.flv

时间: 2024-10-07 18:24:05

c# ffmpeg常用参数的相关文章

ffmpeg常用参数一览

基本选项: -formats 输出所有可用格式 -f fmt 指定格式(音频或视频格式) -i filename 指定输入文件名,在linux下当然也能指定:0.0(屏幕录制)或摄像头 -y 覆盖已有文件 -t duration 记录时长为t -fs limit_size 设置文件大小上限 -ss time_off 从指定的时间(s)开始, [-]hh:mm:ss[.xxx]的格式也支持 -itsoffset time_off 设置时间偏移(s),该选项影响所有后面的输入文件.该偏移被加到输入文

FFmpeg FFmpeg的使用及常用参数

FFmpeg的使用及常用参数 一.下载: 官网:http://ffmpeg.org/ 二.demo: 1 class Program 2 { 3 static void Main(string[] args) 4 { 5 string srcFileName = @"F:\资料\Demo\FFmpeg_Demo\videoold\PROMO.wmv"; 6 string destFileName = @"F:\资料\Demo\FFmpeg_Demo\videonew\PROM

ffmpeg常用基本命令(转)

[FFmpeg]FFmpeg常用基本命令 1.分离视频音频流 ffmpeg -i input_file -vcodec copy -an output_file_video //分离视频流 ffmpeg -i input_file -acodec copy -vn output_file_audio //分离音频流 2.视频解复用 ffmpeg –i test.mp4 –vcodec copy –an –f m4v test.264 ffmpeg –i test.avi –vcodec copy

【linux】ls常用参数

1. 命令格式: ls [选项] [目录名] 2. 命令功能: 列出目标目录中所有的子目录和文件. 3. 常用参数: -a, –-all 列出目录下的所有文件,包括以 . 开头的隐含文件 -d, –-directory 将目录像文件一样显示,而不是显示其下的文件 -h, –-human-readable 以容易理解的格式列出文件大小 (例如 1K 234M 2G) -i, –-inode 印出每个文件的 inode 号 -l,--long 除了文件名之外,还将文件的权限.所有者.文件大小等信息详

grep命令常用参数及用法

1.grep介绍 grep命令是Linux系统中一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来.grep全称Global Regular Expression Print,表示全局正则表达式版本,它的使用权限是所有用户.grep可用于shell脚本,因为grep通过返回一个状态值来说明搜索的状态,如果模板搜索成功,则返回0,如果搜索不成功,则返回1,如果搜索的文件不存在,则返回2. 2.grep常用参数 -a :将 binary 文件以 text 文件的方式搜寻数据

JVM常用参数设置

-server -Xms8g 初始堆大小 -Xmx8g 最大堆大小 -Xmn2g 年轻代大小 -Xss1024K 每个线程的堆栈大小 -XX:PermSize=256m -XX:MaxPermSize=512m Perm不属于堆内存,由虚拟机直接分配,可通过-XX:PermSize -XX:MaxPermSize 等参数调整其大小 设置持久代(perm gen)初始值   设置持久代最大值 -XX:ParallelGCThreads=8 并行收集器的线程数 -XX:+UseConcMarkSwe

cat常用参数详解

cat常用参数详解 作者:尹正杰 最近,我的一个朋友对linux特别感兴趣,于是我觉得每天交给他一个命令的使用,这样一个月下来也会使用30个命令,基本的操作他应该是没啥问题啦,接下来让我们看看 今天的命令吧. 还记得我们昨天学的命令吗?让我们一起看看我的目录下有是吗文件或者目录吧: 通过昨天学的命令,我们看出来了log.txt是我最近修改的一个文件,那么如何去看这个文件的内容呢?让我们一起学习cat吧 一.Cat的基本用法就是cat + [参数(这个参数是可以省略的)] + 文件名称. 例如:

jvm常用参数设置 good

1.堆的大小可以通过 -Xms 和 -Xmx 来设置,一般将他们设置为相同的大小,目的是避免在每次垃圾回收后重新调整堆的大小,比如 -Xms=2g -Xmx=2g 或者 -Xms=512m -Xmx=512m 2.年轻代大小可以通过 -Xmn 来设置,比如-Xmn=2g 或者 -Xmn512m,此值对系统性能影响较大,Sun官方推荐配置为整个堆的3/8 3.年老代大小 = 堆大小 – 年轻代大小 4.持久代或者永久代大小可以通过 -XX:PermSize 和 -XX:MaxPermSize 来控

nginx全局常用参数(核心功能参数)和其他模块参考

一.全局参数配置参考 常用参数配置示例: user nobody nobody; worker_processes 4; errorlog /var/log/nginx/nginxErrorLog.log; pid    /var/run/nignx.pid; worker_rlimit_nofile 65535; events {     use epoll;     worker_connections 65535; } user指定nginx worker进程运行的用户和用户组,默认是no