FFMPEG实战——shell语法

ffmpeg的一些用法,不定期更新 ffmpeg的一些用法,不定期更新 宽度占一半,贴图 ffmpeg.exe -i .\7200.mp4 -i .\640.png -filter_complex "[1]scale=360:-2[a],[0][a]overlay=(main_w-overlay_w)/2:(main_h-overlay_h)/2" -y out7200.mp4 FFmpeg drawtext添加文字和阴影样式 d... 阅读详情

1、shell脚本
输出 echo
文件头 #!/bin/bash

初始化标量 ndk=10 text=shell
特殊 text=“i love shell” 有空格需要用引号
text1=$(who)

echo $ndk
echo $text

命令行结束状态
0 成功
127 没有找到命令
1 未知错误
126 命令不可执行

if条件语句
只有if命令的退出状态码为0,才会执行then部分
语法结构

if --命令–
then
–命令–
fi
实例代码

#!/bin/bash
mydir=/usr/jason
#-d检查目录是否存在
if [ -d $mydir ]
then
	echo "$mydir exist"
	cd $mydir
	ls
else
	echo "mydir not exist"
fi

test数值比较
-gt
-eq 等于
-le
-ne 不等于

test 字符串比较
str1==str2
str1!=str2
str1<str2
-n str1 长度是否非0
-z str2 长度是否为0

文件比较
-d 检查是否存在,并且是一个目录
-e 检查file是否存在
-f 检查是否存在,并且是一个文件
-r 检查是否存在,并且可读
-w -x
file1 -nt file2 file1比file2新
file1 -ot file2 file1比file2旧

case命令
case 变量 in
pattern1)命令;;
pattern2)命令;;
*)默认命令;;
esac

实例代码

#!/bin/bash
testuser=rose

case $testuser in
rose)
	echo "hi,$testuser";;
ricky)
	echo "hello, ricky";;
*)
	echo "defaults";;
esac

for命令
for var in list
do
–命令–
done

实例代码

#!/bin/bash

list="Mother\'s Father Brother"
list2="windows--linux--macos"
#IFS字段分隔符
IFS=$--
for item in $list2
do
	echo $item
done	

while命令
while test command
do
–命令–
done

实例代码

#!/bin/bash
a=10
while [ $a -gt 0 ]
do
	echo "num:$a"
	#赋值不用使用$符号
	a=$[ $a - 1 ]
	if [ $a -eq 5 ]
	then
		echo "break"
		break
	fi	
done

输入输出重定向
./14.sh 1>test 将标准输出重定向到test文件,不在输出到屏幕上
实例代码

#!/bin/bash

##标准输入输出
#0 STDIN 
#1 STDOUT 标准输出
#2 STDERR 标准错误

#永久重定向
exec 1>test7
exec 2>test8

#自定义输出
exec 7>test9

echo "cc zz" >&7
echo "cc yy"

ls -a ./ff

函数的传参
实例代码

#!/bin/bash

#函数的传参,返回值
function myfun
{
	echo $[ $1 + $2 ]
}

value=$(myfun 10 90)
echo "value:$value"

函数库的引用
库函数`

#!/bin/bash
#函数库

function add()
{
	echo $[ $1 + $2 ]
}

引用

#!/bin/bash

#引入./17.sh
#source ./17.sh
#.source快捷别名
. ./17.sh

function myfun()
{
	echo $value
}

value=20
myfun

echo "add value:$(add 10 30)"

zhufk
在Windows下使用shell编译自己的FFmpeg 之前在Windows下编译过FFmpeg库,但是编译出来的DLL库不仅个数多达7个,而且库总大小高达几十兆。现经过研究,使用shell脚本根据自己的需要编译自己的FFmpeg库,不仅可以编译出来一个自己命名的DLL,而且大小可以减小到10MB以下。 阅读详情

相关推荐

ffmpeg shell编译脚本详解

编写ffmpeg编译脚本ffmpeg-build.sh #!/bin/bash #1、首先:定义下载的库名称 source="ffmpeg-3.4" #2、其次:定义".h/.m/.c"文件编译的结果目录 #目录作用:用于保存.h/.m/.c文件编译后的结果.o文件 cache="cache" #3、定义".a"静态库保存目录 #pwd命令:表示获取当前目录 staticdir=`pwd...

安卓兼职framework和app工程师的博客 760

ffmpeg日记1011-过滤器-语法高阶,逻辑,函数使用

实现的是2秒后logo从左到右移动,参数释义if(gte(t\,2)\,((t-2)*80)-w\,NAN) : 对水印坐标x的处理80 移动的距离,单位像素从这条命令中,可以看到,控制logo移动的重点设置在x的值设置,很明显,这其中涉及到特定的语法,本文的重点,就是来看这个特定的语法到底是如何定义的,怎样使用。有些过滤器支持通用的启用选项。对于支持时间轴编辑的过滤器,可以将此选项设置为在向过滤器发送帧之前求值的表达式。如果评估值非零,过滤器将被启用,否则帧将被原封不动地发送到过滤器图中的下一个过滤器。

WenCoo的博客 1068

ffmpeg_全部命令行参数

ffmpeg 全部命令行参数 ,逐个参数解释

ffmpeg的一些初级语法

ffmpeg初级语法

a74559774的专栏 2616

[C++][linux]C++调用shell获取返回值

popen创建的管道,默认读取的是标准输出stdout,但很多程序(如ffmpeg相关的)输出到stderr上,为了能方便地读取这些输出,需要在执行命令时,对输出做重定向( 2>&1)。执行命令的输出信息,通过回调函数返回给调用者;当命令执行完成后,函数会返回命令的执行结果。

FL1623863129的博客 1320

FFmpeg库常用函数介绍(一)

作用:打开媒体文件并获取媒体文件信息,可以是本地文件,也可以时网络流。ps:输入文件的AVFormatContext,会将获取的信息填充进去;url:流地址,可以是本地文件、RTMP、RTP协议流地址;fmt:一般为NULL,表示自动检测流格式,否则会使用提供的值作为流格式;options:一般为NULL;返回值:0表示成功,负值表示失败。注意:需要调用avformat_close_input关闭AVFormatContext。

m0_51496461的博客 2420

ffmpeg shell脚本编写

一、执行.configure --disable-yasm命令 编译ffmpeg,编写shell脚本之前,要执行.configure --disable-yasm命令。执行这些命令的主要目的是进行一系列的准备工作,比如说检查gcc的版本,会生成common.mak等文件 1、解压ffmpeg压缩包 unzip ffmpeg-2.6.9 2、进入到解压后的文件夹,并查看文件夹中的内容 cd...

nicolelili1的专栏 1879

AndroidNDK工程FFmpeg(一)-- Android使用FFmpeg--Shell脚本编写与执行编译FFmpeg

FFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计 算机程序。FFmpeg 是一个多媒体视频处理工具,有非常强大的功能包括视频采集功能、 视频格式转换、视频抓图、给视频加水印等。FFmpeg是由C代码编写而成,功能多,代码量大。 以上呢是百度百科上的,事实上,FFmpeg的视音频编解码功能确实太强大了,几乎囊括了现存所有的视音频编码标准,因此只要做视音频开发,几乎离不...

yanwenyuan0304的专栏 1988

Shell脚本编写与执行编译ffmpeg

7.Shell脚本编写与执行编译ffmpegffmpeg是什么 ffmpeg是一套开源免费跨平台的多媒体框架,他提供了录制,转换以及流化视屏的完整方案 ffmpeg是一套可以用来记录,转换数字音频,视频并且能将其转化为流的开源计算机程序 ffmpeg是一个多媒体处理工具,有非常强大的功能,包括视频采集功能,视频格式转换,视屏抓图,给视屏加水印等。 组成部分 FFmpeg工具 ffmpeg...

风炫灬梦想的博客 883

Shell 脚本 - 自己动手编译 FFmpeg

有了 Makefile、CMake 和 Shell 的基础后,我们就可以自己动手编译 FFmpeg 了。当然网上能找到别人已经有编译好的库文件,我们之所以折腾这么一大圈,还是为了自己以后能去裁剪编译。之前在公司看老大一顿 shell 命令操作,觉得非常的高大上,觉得自己很菜,觉得应该要很多年才能达到这程度吧。自己用心学了才知道,其实也就一周的时间完完全全足够了。 我们先来做一些准备工作,准备一台 ...

z240336124的专栏 591

FFMPEG实战——shell脚本

我们都知道要做NDK开发少不了的就是shell编程。今天就梳理一下我们平时常用的一些shell命令。 1、文件操作: 显示列表 ls -l 所有文件 ls -la 通配符查询 ls -l ja* 创建文件 touch test.c 创建文件夹 mkdir dir 复制文件 cp src.txt dest.txt cp -i src.txt dest.txt 询问模式 cp src.txt 复制到当...

mingkai521的专栏 844

Shell编程之基本语法

为什么要学习shell ffmpeg 音视频 什么是shell 构建一个大型项目,不断打包,编译,这么一系列的操作,可以使用shell; 学习目标 学习路线 变量的定义与使用 语法详解 方法参数传递机制的详解 shell脚本编写与ffmpeg的编译 变量的定义与使用 #!/bin/sh #File by echo helloworld! #局部变量 A=10 echo $A #环境...

C安君的博客 272

FFMPEG】通过错误码反推错误原因

这里在顺便列举一下常见的错误码对应的整型值,能百度到就没必要自己手动去转换了。一般0表示成功,如果失败的话,一般是返回一个负数,比如-541478725。调用ffmpeg的api时,一般会返回一个整型值,表示成功或失败。除此之外,还有一个正规方法,可以反推错误码代表的具体含义。对于一些常见的错误,我们可以通过百度去搜到它的具体含义。那么,我们如何知道这个负值代表什么含义了。

天天向上 Up Up Up (*^▽^*) 3363

ffmpeg 返回错误数字含义

我们是用ffmpeg库函数是,例如在调用av_read_frame、avcodec_decode_video2,会给我们返回一个数值。 例如错误值-1094995529, 将其转换成十六进制为-0x41444E49,在ACSII中, 0x41 = 'A', 0x44 = 'D', 0x4E = 'N, and 0x49 = 'I'。 因为返回的错误值是经过FFERRTAG(可以理解为大小端

aibao1266的专栏 5471

shell [ ffmpeg ]

./configure --enable-libx264--enable-gpl alias ffmpeg_show='ffmpeg -hide_banner -devices' alias ffmpeg_devlist='ffmpeg -hide_banner -f avfoundation -list_devices true -i " "' alias ffmpeg_codecs='ffmpeg -codecs' alias ffmpeg_recordlow='ffmpeg -f avfou.

daad777的专栏 293

Shell脚本下载和编译ffmpeg

1、首先编写Shell脚本下载ffmpeg,命名为ffmpeg-download.sh:#!/bin/bash #库名称 source="ffmpeg-3.4" #下载这个库 if [ ! -r $source ] then #没有下载,那么我需要执行下载操作 echo "没有FFmpeg库,我们需要下载….." #下载:怎么下载? #"curl"命令表示:它可以通过Http\ftp等等这...

iOSbird的博客 1264

简单分析 PowerShellFFmpeg 的输出内容

输出格式:img_%03d.jpg(图片名 + 3 位数字序号),类似 %04d 就是 4 位数字。理解:1/5表示每 5 秒 1 帧,换成1/10就是每 10 秒 1 帧,参数格式很好记。掌握这些,就能读懂 FFmpeg 日志的 “潜台词”,更高效地处理视频啦!核心参数:-vf fps=1/5(视频滤镜 + 帧率)逻辑拆解分析,逐步理解每个模块的意义.

MRXVAM的博客 1612
上一篇: FFMPEG实战——shell脚本
下一篇: flutter Running Gradle task ‘assembleDebug’… 卡住问题
钱多多~吖
博客等级 码龄12年 4粉丝 21原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值