ubuntu使用ffmpeg把图片生成视频

1.首先是ffmpeg的安装

    ubuntu下很简单apt-get install ffmpeg 就可以安装成功,其他系统自己查看官网吧 ffmpeg开源库的网址: http://ffmpeg.org/

2.调用php的系统命令

    system('ffmpeg -threads 2 -y -r 1 -i ' . $file . '%d.png  ' . $file . 'out.flv');

其中参数介绍:

     $file是自己的路径         -threads 2 以两个线程进行运行, 加快处理的速度。    -y 对输出文件进行覆盖      -r 10 fps设置为10帧/秒          -i 输入的图片(%d表示 1 2 3等数字)

#ffmpeg -i file.avi output.flv-i 表示输入文件 :现在有个视频video.avi,有个音频 audio.mp3,将其合并成output.avi  两个命令(file.avi 是中间文件,用完可删)

#ffmpeg -i video.avi -vcodec copy -an video2.avi  
#ffmpeg -i video2.avi -i audio.mp3 -vcodec copy -acodec copy output.avi-i 表示输入文件

-vcodec copy 表示 force video codec (‘copy’ to copy stream) 这个不知怎么译 ,估计是直接copy
-acodec copy 这个说的应该是音频了 跟上面一样
-an:表示 disable audio 估计是audio no 之类的缩写,表示去掉video.avi 原有的音频

方法2 好像可以直接指定两个输入文件 ,

#ffmpeg -i /tmp/a.wav -i /tmp/a.avi /tmp/a.avi两个文件的顺序很重要
从视频里提取声音(声音与视频的分离)

#ffmpeg -i 人生若只如初见.flv -vnr.mp3从flv 文件中提取声音并保存为mp3格式
-vn : 表示忽略视频 估计是video no 之类的缩写

#ffmpeg -i 人生若只如初见.flv -an r.flv只留视频不留声音
-an : 表示 忽略 声音 估计是audio no 之类的缩写

从视频里提取图片( )

 代码如下 复制代码
#ffmpeg -i test.avi -y -f image2 -ss 8 -t 0.001 -s 350x240 test.jpg   

-ss第8秒处截一图
压缩mp3 文件
如果你觉得mp3文件有点大,想变小一点那么可以通过-ab 选项改变音频的比特率 (bitrate)

 代码如下 复制代码

#ffmpeg -i input.mp3 -ab 128 output.mp3//这里将比特率设为128

你可以用file 命令查看一下源文件 的信息

 代码如下 复制代码
z.mp3: Audio file with ID3 version 2.3.0, contains: MPEG ADTS, layer III, v1, 192 kbps, 44.1 kHz, Stereo

其中的192 kbps 就是这个东西

mp3中比特率的含义是:在压缩音频文件至mp3时,由压缩软件所确定数码文件在播放时每秒传 送给播放器大小,其单位是:千位/秒;英文的含义是:kbps – = kilobits per second。现在mp3文件的最高数位率是320 kbps。这样的文件体积很大,每分钟的音乐超过两兆字节。如果采用可变比特率(VBR)编码来生成mp3文件,获得与320 kbps相当音质,文件的体积会缩小25~50%。请注意:播放时间相同,而歌曲不同,所获的压缩mp3文件的一般不相同,这是因为VBR编码所生成的 mp3文件的大小不仅仅取决于播放时间的长度,还取决于源音频文件的其它因素。

录音(要有可用的麦克风,并且如果用alsa 的话,好像得安alsa-oss,重启)

 代码如下 复制代码
#ffmpeg -f oss -i /dev/dsp out.avi
#ffmpeg -f alsa -ac 2 -i hw:0,0 ut.avi
#ffmpeg -f alsa -ac 2 -i pulseoss

linux 下的声音相关的东西,与alsa 一样,不过oss 是商业的, 而/dev/dsp 是oss 用到的麦克的设备吧,可以这样理解

屏幕录像

 代码如下 复制代码
#ffmpeg -f x11grab -s xga -r 10 -i :0.0+0+0 wheer.avi 
#ffmpeg -f x11grab -s 320x240  -r 10 -i :0.0+100+200 wheer.avi:0:0

表示屏幕(个人理解,因为系统变量$DISPLAY值就是:0.0) 而100,表示距左端100象素,200表示距上端200
-s 设置窗口大小
-r 10 好像是设置频率,不懂

 代码如下 复制代码
#ffmpeg -f x11grab -s xga-qscale 5-r 10 -i :0.0+0+0 wheer.avi-qscale 8

 设定画面质量,值越小越好

屏幕录像,同时录音

 代码如下 复制代码
#ffmpeg -f oss -i /dev/dsp-f x11grab -r 30 -s 1024x768 -i :0.0  output.mkv
#ffmpeg -ac 2 -f oss -i /dev/dsp -f x11grab -r 30 -s 1024x768 -i :0.0 -acodec pcm_s16le -vcodec libx264 -vpre lossless_ultrafast -threads 0 output.mkv


转载来自:http://www.111cn.net/sys/Ubuntu/58890.htm




  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在Ubuntu使用FFmpeg生成Android库,需要进行以下步骤: 1. 安装必要的工具和依赖项: - 安装FFmpeg:可以通过`sudo apt install ffmpeg`命令进行安装。 - 安装Android NDK:下载并安装最新版本的Android NDK,可以从官方网站(https://developer.android.com/ndk/downloads)获取。 2. 配置环境变量: - 将Android NDK的路径添加到系统的PATH环境变量中。可以在`.bashrc`或`.profile`文件中添加以下行: ``` export ANDROID_NDK=/path/to/android/ndk export PATH=$PATH:$ANDROID_NDK ``` 3. 编写编译脚本: - 创建一个名为`build_android.sh`的脚本文件,并将以下内容复制到文件中: ```bash #!/bin/bash # 设置NDK路径 export NDK=/path/to/android/ndk # 设置目标架构和API级别 export TARGET_ARCH=armv7a export API_LEVEL=21 # 设置交叉编译工具链路径 export TOOLCHAIN=$NDK/toolchains/llvm/prebuilt/linux-x86_64 # 设置输出目录 export OUTPUT_DIR=output/android/$TARGET_ARCH # 设置编译参数 export COMMON_OPTIONS="-fPIC -DANDROID -D__ANDROID_API__=$API_LEVEL" # 设置交叉编译工具链路径 export CROSS_PREFIX=$TOOLCHAIN/bin/$TARGET_ARCH-linux-android- # 设置编译器和链接器 export CC=$CROSS_PREFIX"clang" export CXX=$CROSS_PREFIX"clang++" export LD=$CROSS_PREFIX"ld" # 设置编译选项 export CFLAGS="$COMMON_OPTIONS -march=armv7-a -mfloat-abi=softfp -mfpu=vfpv3-d16" export CXXFLAGS="$CFLAGS" export LDFLAGS="-Wl,--fix-cortex-a8" # 配置FFmpeg ./configure \ --prefix=$OUTPUT_DIR \ --disable-shared \ --enable-static \ --disable-doc \ --disable-ffmpeg \ --disable-ffplay \ --disable-ffprobe \ --disable-avdevice \ --disable-symver \ --cross-prefix=$CROSS_PREFIX \ --target-os=android \ --arch=arm \ --enable-cross-compile # 编译和安装FFmpeg make && make install ``` 4. 构建Android库: - 打开终端,进入FFmpeg源代码的根目录,然后运行以下命令: ```bash chmod +x build_android.sh ./build_android.sh ``` - 脚本将使用指定的NDK路径、目标架构和API级别进行配置,并编译生成Android库。生成的库文件将位于`output/android/$TARGET_ARCH`目录中。 这样,你就可以使用FFmpegUbuntu生成Android库了。记得根据你的具体需求和环境进行必要的修改。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值