ffmpeg安装和使用方法(30分钟带你学会ffmpeg开发与应用工具)
ffmpeg安装和使用方法(30分钟带你学会ffmpeg开发与应用工具)Yasm是英特尔x86架构下的一个汇编器和反汇编器。Yasm是一个完全重写的Netwide汇编器(NASM)。Yasm通常可以与NASM互换使用,并支持x86和x86-64架构。其许可协议为修订过的BSD许可证。旧版ffmpeg及x264使用yasm汇编器opensuse平台版本:openSUSE Leap 42.3。ubuntu平台版本:Ubuntu 16.04.5 LTS。1. yasm/NASM
FFmpeg开发环境构建总结有福利一、相关资源介绍
本文主要讲述linux平台x86(及x86-64)架构下的ffmpeg编译安装过程。
其他嵌入式平台需要交叉编译,过程类似,不详述。
本实验在opensuse和ubuntu两个平台作了验证。使用lsb_release -a命令查看系统发行版版本:
opensuse平台版本:openSUSE Leap 42.3。
ubuntu平台版本:Ubuntu 16.04.5 LTS。
1. yasm/NASM
旧版ffmpeg及x264使用yasm汇编器
Yasm是英特尔x86架构下的一个汇编器和反汇编器。Yasm是一个完全重写的Netwide汇编器(NASM)。Yasm通常可以与NASM互换使用,并支持x86和x86-64架构。其许可协议为修订过的BSD许可证。
此处Yasm用来编译x86平台下ffmpeg中部分汇编代码。
注意,Yasm是x86平台汇编器,不需要交叉编译。若是arm等其他平台,交叉编译工具链中包含有对应的汇编器,则交叉编译时需要–disable-yasm选项。
Yasm官网:http://yasm.tortall.net/
新版ffmpeg及x264改用nasm汇编器
Netwide Assembler(简称NASM)是一款基于英特尔x86架构的汇编与反汇编工具。NASM被认为是Linux平台上最受欢迎的汇编工具之一。
ffmpeg工程中实现了h265解码器,但无h265编码器。因此需要安装第三方编码器x265
4. SDL
SDL(Simple DirectMedia Layer)是一套开源的跨平台多媒体开发库。SDL提供了数种控制图像、声音、输出输入的函数,封装了复杂的视音频底层操作,简化了视音频处理的难度。目前SDL多用于开发游戏、模拟器、媒体播放器等多媒体应用领域。
二、编译过程
1. 规划安装路径
将编译源码得到的程序资源安装到用户目录/home/think下。则安装后,/home/think目录下会多出bin、include、lib、share等目录
配置环境变量
编辑/etc/profile,添加如下几行:
export PATH=/home/think/bin:$PATH
export LIBRARY_PATH=/home/think/lib:/home/think/lib64:$LIBRARY_PATH
export PKG_CONFIG_PATH=/home/think/lib/pkgconfig:$PKG_CONFIG_PATH
export C_INCLUDE_PATH=/home/think/include:$C_INCLUDE_PATH
1
2
3
4
上述几个环境变量是程序编译时需要用到的库文件、头文件路径,以及可执行程序所在路径。
在命令行中运行如下命令,使新设置的环境变量立即生效:
source /etc/profile
1
配置动态库路径
编辑/etc/ld.so.conf,添加如下两行:
/home/think/lib
/home/think/lib64
1
2
ld.so.conf中的内容是程序运行时需要搜索的动态库路径。
在命令行中运行如下命令,使新设置的动态库路径立即生效:
ldconfig
1
2. yasm/nasm
旧版ffmpeg及x264使用yasm汇编器
tar -zxvf yasm-1.3.0.tar.gz
cd yasm-1.3.0/
./configure --prefix=/home/think
make
make install
1
2
3
4
5
6
新版ffmpeg及x264改用nasm汇编器
具体从哪一版本开始改用nasm不太清楚,
tar -zxvf nasm-2.14.tar.gz
cd nasm-2.14/
./configure --prefix=/home/think
make
make install
1
2
3
4
5
6
3. x264
在网址https://www.videolan.org/developers/x264.html下载源码包last_x264.tar.bz2,这是git仓库的master分支源码。我们直接输入以下地址下载stable分支:
tar -jxvf last_stable_x264.tar.bz2
cd x264-snapshot-20181119-2245-stable/
./configure --prefix=/home/think --enable-shared --enable-static
make
make install
1
2
3
4
5
6
注意第4行配置选项中,未给出–disable-asm选项,则表示启用汇编选项
4. x265
tar -zxvf x265_2.9.tar.gz
cd x265_2.9/build/linux/
./make-Makefiles.bash
在上一行命令运行快结束时,出现cmake配置信息编辑界面,将CMAKE_INSTALL_PREFIX的值改成/home/think
make
make install
1
2
3
4
5
6
7
5. SDL
注意:应先安装SDL,再安装ffmpeg,否则ffmpeg编译时不会生成ffplay
原因如参考资料[3]所述。
两种安装方式,推荐第二种方式,可能遇到的问题比较少
编译源码安装(不推荐)
tar -zxvf SDL2-2.0.9.tar.gz
cd SDL2-2.0.9/
./configure --prefix=/home/think
make
make install
1
2
3
4
5
6
通过编译源码安装的方式,编译安装成功后运行ffplay可能会遇到挺多问题,参“六、问题描述”
通过软件源在线安装(推荐)
opensuse平台:
zypper install libSDL2-devel
zypper install libSDL2_image-devel
zypper install libSDL2_mixer-devel
zypper install libSDL2_ttf-devel
zypper install libSDL2_gfx-devel
1
2
3
4
5
ubuntu平台:
apt-get install libsdl2-dev
apt-get install libsdl2-image-dev
apt-get install libsdl2-mixer-dev
apt-get install libsdl2-ttf-dev
apt-get install libsdl2-gfx-dev
1
2
3
4
5
6. ffmpeg
tar -jxvf ffmpeg-4.1.tar.bz2
cd cd ffmpeg-4.1/
./configure --prefix=/home/think --enable-shared --enable-static --enable-libx264 --enable-libx265 --enable-gpl --enable-pthreads --extra-cflags=-I/home/think/include --extra-ldflags=-L/home/think/lib
make
make install
1
2
3
4
5
6
五、测试
在命令行中运行如下测试命令:
ffmpeg -i bigbuckbunny_480x272.h265 bigbuckbunny_480x272.mp4
ffplay 128x128.264
ffprobe 128x128.264
1
2
3
注意:
远程终端处于控制台命令行模式(运行级别3),无权限调用SDL,因此无法测试ffplay,但可以测试ffmpeg和ffprobe。测试ffplay需要X11控制台模式(运行级别5,即GUI图形模式)。
六、问题记录
1. No available video device
错误提示:
Could not initialize SDL - No available video device
(Did you set the DISPLAY variable?)
原因分析:
解决方法:
a) 安装x11的库文件:
opensuse平台:
zypper install libX11-devel
zypper install xorg-x11-devel
1
2
ubuntu平台:
apt-get install libx11-dev
apt-get install xorg-dev
1
2
b) 重新编译安装SDL
2. Audio target ‘pulse’ not available
错误提示:
Could not initialize SDL - Audio target ‘pulse’ not available
(Did you set the DISPLAY variable?)
原因分析:
解决方法:
a) 安装缺少的库
opensuse平台:
zypper install libpulse-devel
zypper install libasound2
zypper install libasound2-devel // 实测不安装此包也无问题,若软件源中无此包则不必安装
1
2
3
ubuntu平台:
apt-get install libpulse-dev
apt-get install libasound2
apt-get install libasound2-dev
1
2
3
b) 重新编译安装SDL
3. x265 not found using pkg-config
错误提示:
编译ffmpeg,运行./configure --enable-libx265 ...出现如下错误提示:
x265 not found using pkg-config
原因分析:
参考资料[5]http://forums.libsdl.org/viewtopic.php?t=7609
解决方法:
export PKG_CONFIG_PATH=/home/think/lib/pkgconfig:$PKG_CONFIG_PATH
FFMPEG开发必备工具
一、 FFmpeg是什么?
简单说,FFmpeg就是一个很好的,免费的,开源的视频转换工具。详细说,FFmpeg是一个开源免费跨平台的视频和音频流方案,属于自由软件,采用LGPL或GPL许可证(依据你选择的组件)。它提供了录制、转换以及流化音视频的完整解决方案。它包含了非常先进的音频/视频编解码库libavcodec,为了保证高可移植性和编解码质量,libavcodec里很多codec都是从头开发的。
FFmpeg的官网是:http://ffmpeg.org/,下载地址:http://ffmpeg.org/download.html。需要的同学可以从官网自行下载。
官网的解释是:ffmpeg is a command line tool to convert multimedia files between formats.即:ffmpeg是用来转换不同格式的多媒体文件的一个命令行工具。
二、 FFmpeg功能是什么?
FFmpeg有非常强大的功能 包括视频采集功能、视频格式转换、视频抓图、给视频加水印等。ffmpeg是用来转换不同格式的多媒体文件的一个命令行工具。
这里重点讲讲视频格式转换功能,ffmpeg视频转换功能。视频格式转换,比如可以将多种视频格式转换为flv格式,可不是视频信号转换 。
ffmpeg可以轻易地实现多种视频格式之间的相互转换(wma rm MP4 mod等),例如可以将摄录下的视频MP4等转成现在视频网站所采用的flv格式。
三、 FFmpeg究竟怎么用?
第一,下载FFmpeg。
先根据自己的系统到官网是:http://ffmpeg.org/下载好对应版本的FFmpeg,下载地址:http://ffmpeg.org/download.html。一般工具名称为:ffmpeg-20140123-git-e6d1c66-win64-static.7z,解压后可以直接使用该工具了,直接到D:\路径\ffmpeg-20140123-git-e6d1c66-win64-static\bin\ ffmpeg.exe下,准备好命令行和批处理文件就可以直接转换了。
第二,命令集的简单实用方法
1.获取视频的信息
ffmpeg -i video.MP4
2.将图片序列合成视频
ffmpeg -f image2 -i image%d.jpg video.mpg
上面的命令会把当前目录下的图片(名字如:image1.jpg. image2.jpg. 等...)合并成video.mpg
3.将视频分解成图片序列
ffmpeg -i video.mpg image%d.jpg
上面的命令会生成image1.jpg. image2.jpg. ...
支持的图片格式有:PGM. PPM. PAM. PGMYUV. JPEG. GIF. PNG. TIFF. SGI
4.为视频重新编码以适合在iPod/iPhone上播放
ffmpeg -i source_video.MP4 input -acodec aac -ab 128kb -vcodec mpeg4 -b 1200kb -mbd 2 -flags 4mv trell -aic 2 -cmp 2 -subcmp 2 -s 320x180 -title X final_video.mp4
说明:
* 源视频:source_video.MP4
* 音频编码:aac
* 音频位率:128kb/s
* 视频编码:mpeg4
* 视频位率:1200kb/s
* 视频尺寸:320 X 180
* 生成的视频:final_video.mp4
5.为视频重新编码以适合在PSP上播放
ffmpeg -i source_video.MP4 -b 300 -s 320x240 -vcodec xvid -ab 32 -ar 24000 -acodec aac final_video.mp4
说明:
* 源视频:source_video.MP4
* 音频编码:aac
* 音频位率:32kb/s
* 视频编码:xvid
* 视频位率:1200kb/s
* 视频尺寸:320 X 180
* 生成的视频:final_video.mp4
6.从视频抽出声音.并存为Mp3
ffmpeg -i source_video.MP4 -vn -ar 44100 -ac 2 -ab 192 -f mp3 sound.mp3
说明:
* 源视频:source_video.MP4
* 音频位率:192kb/s
* 输出格式:mp3
* 生成的声音:sound.mp3
7.将wav文件转成Mp3
ffmpeg -i son_origine.MP4 -vn -ar 44100 -ac 2 -ab 192 -f mp3 son_final.mp3
8.将.MP4视频转成.mpg
ffmpeg -i video_origine.MP4 video_finale.mpg
9.将.mpg转成.MP4
ffmpeg -i video_origine.mpg video_finale.MP4
10.将.MP4转成gif动画(未压缩)
ffmpeg -i video_origine.MP4 gif_anime.gif
11.合成视频和音频
ffmpeg -i son.wav -i video_origine.MP4 video_finale.mpg
12.将.MP4转成.flv
ffmpeg -i video_origine.MP4 -ab 56 -ar 44100 -b 200 -r 15 -s 320x240 -f flv video_finale.flv
13.将.MP4转成dv
ffmpeg -i video_origine.MP4 -s pal -r pal -aspect 4:3 -ar 48000 -ac 2 video_finale.dv
或者:
ffmpeg -i video_origine.MP4 -target pal-dv video_finale.dv
14.将.MP4压缩成divx
ffmpeg -i video_origine.MP4 -s 320x240 -vcodec msmpeg4v2 video_finale.MP4
15.将Ogg Theora压缩成Mpeg dvd
ffmpeg -i film_sortie_cinelerra.ogm -s 720x576 -vcodec mpeg2video -acodec mp3 film_terminate.mpg
16.将.MP4压缩成SVCD mpeg2
NTSC格式:
ffmpeg -i video_origine.MP4 -target ntsc-svcd video_finale.mpg
PAL格式:
ffmpeg -i video_origine.MP4 -target pal-svcd video_finale.mpg
17.将.MP4压缩成VCD mpeg2
NTSC格式:
ffmpeg -i video_origine.MP4 -target ntsc-vcd video_finale.mpg
PAL格式:
ffmpeg -i video_origine.MP4 -target pal-vcd video_finale.mpg
18.多通道编码
ffmpeg -i fichierentree -pass 2 -passlogfile ffmpeg2pass fichiersortie-2
19.从flv提取mp3
ffmpeg -i source.flv -ab 128k dest.mp3
第三,认识ffmpeg的不同编码器
ffmpeg version N-60106-ge6d1c66 Copyright (c) 2000-2014 the FFmpeg developers
built on Jan 22 2014 22:06:20 with gcc 4.8.2 (GCC)
configuration: --enable-gpl --enable-version3 --disable-w32threads --enable-av
isynth --enable-bzlib --enable-fontconfig --enable-frei0r --enable-gnutls --enab
le-iconv --enable-libass --enable-libbluray --enable-libcaca --enable-libfreetyp
e --enable-libgsm --enable-libilbc --enable-libmodplug --enable-libmp3lame --ena
ble-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-l
ibopus --enable-librtmp --enable-libschroedinger --enable-libsoxr --enable-libsp
eex --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvo-aa
cenc --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libwavp
ack --enable-libx264 --enable-libxavs --enable-libxvid --enable-zlib
libavutil 52. 63.100 / 52. 63.100
libavcodec 55. 49.100 / 55. 49.100
libavformat 55. 25.101 / 55. 25.101
libavdevice 55. 5.102 / 55. 5.102
libavfilter 4. 1.100 / 4. 1.100
libswscale 2. 5.101 / 2. 5.101
libswresample 0. 17.104 / 0. 17.104
libpostproc 52. 3.100 / 52. 3.100
Input #0 MP4 from 'E:\FormatTransfer_Tools\ffmpeg\bin\test.MP4':
Metadata:
encoder : Lavf55.25.101
Duration: 00:01:32.04 start: 0.000000 bitrate: 5774 kb/s
Stream #0:0: Video: mpeg4 (Simple Profile) (FMP4 / 0x34504D46) yuv420p 192
0x1080 [SAR 1:1 DAR 16:9] 60 tbr 60 tbn 60 tbc
Stream #0:1: Audio: mp3 (U[0][0][0] / 0x0055) 48000 Hz stereo s16p 128 k
b/s
Invalid encoder type 'xsub'
Encoders:
V..... = Video
A..... = Audio
S..... = Subtitle
.F.... = Frame-level multithreading
..S... = Slice-level multithreading
...X.. = Codec is experimental
....B. = Supports draw_horiz_band
.....D = Supports direct rendering method 1
------
V..... a64multi Multicolor charset for Commodore 64 (codec a64_multi)
V..... a64multi5 Multicolor charset for Commodore 64 extended with 5th color (colram) (codec a64_multi5)
V..... amv AMV Video
V..... asv1 ASUS V1
V..... asv2 ASUS V2
V..... avrp MP4d 1:1 10-bit RGB Packer
V..X.. avui MP4d Meridien Uncompressed
V..... ayuv Uncompressed packed MS 4:4:4:4
V..... bmp BMP (Windows and OS/2 bitmap)
V..... libxavs libxavs Chinese AVS (Audio Video Standard) (codec cavs)
V..... cinepak Cinepak / CVID
V..... cljr Cirrus Logic AccuPak
V..... libschroedinger libschroedinger Dirac 2.2 (codec dirac)
V.S... dnxhd VC3/DNxHD
V..... dpx DPX (Digital Picture Exchange) image
V.S... dvvideo DV (Digital Video)
V.S... ffv1 FFmpeg video codec #1
V..... ffvhuff Huffyuv FFmpeg variant
V..... flashsv Flash Screen Video
V..... flashsv2 Flash Screen Video Version 2
V..... flv FLV / Sorenson Spark / Sorenson H.263 (Flash Video) (codec flv1)
V..... gif GIF (Graphics Interchange Format)
V..... h261 H.261
V..... h263 H.263 / H.263-1996
V.S... h263p H.263 / H.263-1998 / H.263 version 2
V..... libx264 libx264 H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10 (codec h264)
V..... libx264rgb libx264 H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10 RGB (codec h264)
V..... huffyuv Huffyuv / HuffYUV
V..X.. jpeg2000 JPEG 2000
V..... libopenjpeg OpenJPEG JPEG 2000 (codec jpeg2000)
V..... jpegls JPEG-LS
V..... ljpeg Lossless JPEG
VFS... mjpeg MJPEG (Motion JPEG)
V.S... mpeg1video MPEG-1 video
V.S... mpeg2video MPEG-2 video
V.S... mpeg4 MPEG-4 part 2
V..... libxvid libxvidcore MPEG-4 part 2 (codec mpeg4)
V..... msmpeg4v2 MPEG-4 part 2 Microsoft variant version 2
V..... msmpeg4 MPEG-4 part 2 Microsoft variant version 3 (codec msmpeg4v3)
V..... msvideo1 Microsoft Video-1
V..... pam PAM (Portable AnyMap) image
V..... pbm PBM (Portable BitMap) image
V..... pcx PC Paintbrush PCX image
V..... pgm PGM (Portable GrayMap) image
V..... pgmyuv PGMYUV (Portable GrayMap YUV) image
VF.... png PNG (Portable Network Graphics) image
V..... ppm PPM (Portable PixelMap) image
VF.... prores Apple ProRes
VF.... prores_aw Apple ProRes (codec prores)
V.S... prores_ks Apple ProRes (iCodec Pro) (codec prores)
V..... qtrle QuickTime Animation (RLE) video
V..... r10k AJA Kona 10-bit RGB Codec
V..... r210 Uncompressed RGB 10-bit
V..... rawvideo raw video
V..... roqvideo id RoQ video (codec roq)
V..... rv10 RealVideo 1.0
V..... rv20 RealVideo 2.0
V..... sgi SGI image
V..... snow Snow
V..... sunrast Sun Rasterfile image
V..... svq1 Sorenson Vector Quantizer 1 / Sorenson Video 1 / SVQ1
V..... targa Truevision Targa image
V..... libtheora libtheora Theora (codec theora)
V..... tiff TIFF image
V..... utvideo Ut Video
V..... v210 Uncompressed 4:2:2 10-bit
V..... v308 Uncompressed packed 4:4:4
V..... v408 Uncompressed packed QT 4:4:4:4
V..... v410 Uncompressed 4:4:4 10-bit
V..... libvpx libvpx VP8 (codec vp8)
V..... libvpx-vp9 libvpx VP9 (codec vp9)
V..... wmv1 Windows Media Video 7
V..... wmv2 Windows Media Video 8
V..... xbm XBM (X BitMap) image
V..... xface X-face image
V..... xwd XWD (X Window Dump) image
V..... y41p Uncompressed YUV 4:1:1 12-bit
V..... yuv4 Uncompressed packed 4:2:0
V..... zlib LCL (LossLess Codec Library) ZLIB
V..... zmbv Zip Motion Blocks Video
A..X.. aac AAC (Advanced Audio Coding)
A..... libvo_aacenc Android VisualOn AAC (Advanced Audio Coding) (codec aac)
A..... ac3 ATSC A/52A (AC-3)
A..... ac3_fixed ATSC A/52A (AC-3) (codec ac3)
A..... adpcm_adx SEGA CRI ADX ADPCM
A..... g722 G.722 ADPCM (codec adpcm_g722)
A..... g726 G.726 ADPCM (codec adpcm_g726)
A..... adpcm_ima_qt ADPCM IMA QuickTime
A..... adpcm_ima_wav ADPCM IMA WAV
A..... adpcm_ms ADPCM Microsoft
A..... adpcm_swf ADPCM Shockwave Flash
A..... adpcm_yamaha ADPCM Yamaha
A..... alac ALAC (Apple Lossless Audio Codec)
A..... libopencore_amrnb OpenCORE AMR-NB (Adaptive Multi-Rate Narrow-Band) (codec amr_nb)
A..... libvo_amrwbenc Android VisualOn AMR-WB (Adaptive Multi-Rate Wide-Band) (codec amr_wb)
A..... comfortnoise RFC 3389 comfort noise generator
A..X.. dca DCA (DTS Coherent Acoustics) (codec dts)
A..... eac3 ATSC A/52 E-AC-3
A..... flac FLAC (Free Lossless Audio Codec)
A..... g723_1 G.723.1
A..... libgsm libgsm GSM (codec gsm)
A..... libgsm_ms libgsm GSM Microsoft variant (codec gsm_ms)
A..... libilbc iLBC (Internet Low Bitrate Codec) (codec ilbc)
A..... mp2 MP2 (MPEG audio layer 2)
A..... mp2fixed MP2 fixed point (MPEG audio layer 2) (codec mp2)
A..... libtwolame libtwolame MP2 (MPEG audio layer 2) (codec mp2)
A..... libmp3lame libmp3lame MP3 (MPEG audio layer 3) (codec mp3)
A..... nellymoser Nellymoser Asao
A..... libopus libopus Opus (codec opus)
A..... pcm_alaw PCM A-law / G.711 A-law
A..... pcm_f32be PCM 32-bit floating point big-endian
A..... pcm_f32le PCM 32-bit floating point little-endian
A..... pcm_f64be PCM 64-bit floating point big-endian
A..... pcm_f64le PCM 64-bit floating point little-endian
A..... pcm_mulaw PCM mu-law / G.711 mu-law
A..... pcm_s16be PCM signed 16-bit big-endian
A..... pcm_s16be_planar PCM signed 16-bit big-endian planar
A..... pcm_s16le PCM signed 16-bit little-endian
A..... pcm_s16le_planar PCM signed 16-bit little-endian planar
A..... pcm_s24be PCM signed 24-bit big-endian
A..... pcm_s24daud PCM D-Cinema audio signed 24-bit
A..... pcm_s24le PCM signed 24-bit little-endian
A..... pcm_s24le_planar PCM signed 24-bit little-endian planar
A..... pcm_s32be PCM signed 32-bit big-endian
A..... pcm_s32le PCM signed 32-bit little-endian
A..... pcm_s32le_planar PCM signed 32-bit little-endian planar
A..... pcm_s8 PCM signed 8-bit
A..... pcm_s8_planar PCM signed 8-bit planar
A..... pcm_u16be PCM unsigned 16-bit big-endian
A..... pcm_u16le PCM unsigned 16-bit little-endian
A..... pcm_u24be PCM unsigned 24-bit big-endian
A..... pcm_u24le PCM unsigned 24-bit little-endian
A..... pcm_u32be PCM unsigned 32-bit big-endian
A..... pcm_u32le PCM unsigned 32-bit little-endian
A..... pcm_u8 PCM unsigned 8-bit
A..... real_144 RealAudio 1.0 (14.4K) (codec ra_144)
A..... roq_dpcm id RoQ DPCM
A..X.. s302m SMPTE 302M
A..X.. sonic Sonic
A..X.. sonicls Sonic lossless
A..... libspeex libspeex Speex (codec speex)
A..... tta TTA (True Audio)
A..X.. vorbis Vorbis
A..... libvorbis libvorbis (codec vorbis)
A..... wavpack WavPack
A..... libwavpack (codec wavpack)
A..... wmav1 Windows Media Audio 1
A..... wmav2 Windows Media Audio 2
S..... ass ASS (Advanced SubStation Alpha) subtitle
S..... dvbsub DVB subtitles (codec dvb_subtitle)
S..... dvdsub DVD subtitles (codec dvd_subtitle)
S..... mov_text 3GPP Timed Text subtitle
S..... srt SubRip subtitle with embedded timing
S..... ssa SSA (SubStation Alpha) subtitle
S..... subrip SubRip subtitle
S..... xsub DivX subtitles (XSUB)
第四,实例详解FFmpeg视频转换的参数设置方法
例如:ffmpeg -y -i "test.MP4" -title "Test" -vcodec xvid -s 1920*1080 -r 30 - b 1500 -acodec aac -ac 2 -ar 24000 -ab 128 -vol 200 -f psp -muxvb 768 "test.***"
# 参数解释:
-y(覆盖输出文件,即如果1.***文件已经存在的话,不经提示就覆盖掉了)
-i "1.MP4"(输入文件是和ffmpeg在同一目录下的1.MP4文件,可以自己加路径,改名字)
-title "Test"(在PSP中显示的影片的标题)
-vcodec xvid(使用XVID编码压缩视频,不能改的)
-s 1920*1080(输出的分辨率为1920*1080,注意片源一定要是16:9的不然会变形)
-r 30(帧数,一般就用这个吧)
-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就说文件损坏了)
"test.***"(输出文件名,也可以加路径改文件名)
第五,不同格式之间的相互转换
◆将任意视频格式(如MP4)转换成视频格式(如MPEG1) 音频格式(AC3)的视频:
ffmpeg -y -i E:\FormatTransfer_Tools\ffmpeg\bin\test.MP4 -vcodec mpeg1video –s 1920*1080 –r 60 -acodec ac3 E:\FormatTransfer_Tools\ffmpeg\bin\Video[1920x1080][60fps][MPEG1]_Audio[ac3].mpeg
◆将任意视频格式(如MP4)转换成视频格式(如MPEG2) 音频格式(DTS)的视频:
ffmpeg -y -i E:\FormatTransfer_Tools\ffmpeg\bin\test.MP4 -vcodec mpeg2video –s 1920*1080 –r 60 -acodec dca -strict -2 E:\FormatTransfer_Tools\ffmpeg\bin\Video[1920x1080][60fps][MPEG2]_Audio[DTS].mpeg
◆将任意视频格式(如MP4)转换成视频格式(如MPEG2) 音频格式(PCM)的视频:
ffmpeg -y -i E:\FormatTransfer_Tools\ffmpeg\bin\test.MP4 -vcodec mpeg2video –s 1920*1080 –r 60 -acodec pcm_alaw E:\FormatTransfer_Tools\ffmpeg\bin\Video[1920x1080][60fps][MPEG2]_Audio[PCM].mpeg
◆将任意视频格式(如MP4)转换成视频格式(如MPEG4) 音频格式(MP3)的视频:
ffmpeg -y -i E:\FormatTransfer_Tools\ffmpeg\bin\test.MP4 -vcodec mpeg4 –s 1920*1080 –r 60 -acodec dlibmp3lame E:\FormatTransfer_Tools\ffmpeg\bin\Video[1920x1080][60fps][MPEG4]_Audio[ac3].mpeg
◆将任意视频格式(如MP4)转换成视频格式(如MJPEG) 音频格式(MP2)的视频:
ffmpeg -y -i E:\FormatTransfer_Tools\ffmpeg\bin\test.MP4 -vcodec mjpeg –s 1920*1080 –r 60 -acodec mp2 E:\FormatTransfer_Tools\ffmpeg\bin\Video[1920x1080][60fps][ MJPEG]_Audio[MP2].mpeg
◆将任意视频格式(如MP4)转换成视频格式(如DivX5) 音频格式(DTS)的视频:
ffmpeg -y -i E:\FormatTransfer_Tools\ffmpeg\bin\Video[1920x1080][60fps][DIVX5]_Audio[AC3].MP4 –s 1920*1080 –r 60 -acodec dca -strict -2 E:\FormatTransfer_Tools\ffmpeg\bin\Video[1920x1080][60fps][DIVX5]_Audio[dts].MP4
◆将任意视频格式(如MP4)转换成视频格式(如H.263) 音频格式(AC3)的视频:
ffmpeg -y -i E:\FormatTransfer_Tools\ffmpeg\bin\test.mp4 -vcodec h263p -s 720x480 -acodec ac3 E:\FormatTransfer_Tools\ffmpeg\bin\Video[720x480][60fps][h263]_Audio[ac3].MP4
◆将任意视频格式(如MP4)转换成视频格式(如H.264) 音频格式(AAC)的视频:
ffmpeg -y -i E:\FormatTransfer_Tools\ffmpeg\bin\test.mp4 -vcodec libx264rgb –s 1920*1080 -r 30 -acodec libvo_aacenc E:\FormatTransfer_Tools\ffmpeg\bin\Video[1920x1080][30fps][h264]_Audio[aac].3gp
◆将任意视频格式(如MP4)转换成视频格式(如Sorenson_Spark) 音频格式(MP3)的视频:
ffmpeg -y -i E:\FormatTransfer_Tools\ffmpeg\bin\test.mp4 -vcodec flv –s 1920*1080 –r 60 -acodec libmp3lame E:\FormatTransfer_Tools\ffmpeg\bin\Video[1920x1080][60fps][Sorenson_Spark]_Audio[MP3].MP4
◆将任意视频格式(如MP4)转换成视频格式(如WMV3) 音频格式(WMA)的视频:
ffmpeg -y -i E:\FormatTransfer_Tools\ffmpeg\bin\test.mp4 -vcodec wmv3image –s 1920*1080 –r 60 -acodec wmav1 E:\FormatTransfer_Tools\ffmpeg\bin\Video[1920x1080][60fps][WMV3]_Audio[wma1].MP4
◆将任意视频格式(如MP4)转换成视频格式(如XviD) 音频格式(AC3)的视频:
ffmpeg -y -i E:\FormatTransfer_Tools\ffmpeg\bin\test.mp4 -vcodec libxvid –s 1920*1080 –r 60 -acodec ac3 E:\FormatTransfer_Tools\ffmpeg\bin\Video[1920x1080][60fps][XviD]_Audio[AC3_fixed].MP4
◆将任意视频格式(如MP4)转换成视频格式(如RV) 音频格式(AAC)的视频:
ffmpeg -y -i E:\FormatTransfer_Tools\ffmpeg\bin\test.mp4 -vcodec rv10 -s 1280x720 -acodec libvo_aacenc E:\FormatTransfer_Tools\ffmpeg\bin\Video[1280x720][60fps][RV10]_Audio[aac].MP4
◆将任意视频格式(如MP4)转换成视频格式(如H.264) 分辨率为4k的视频:
ffmpeg -y -i E:\FormatTransfer_Tools\ffmpeg\bin\test.mp4 -vcodec libx264rgb -s 4096x2304 -r 30 -acodec libmp3lame E:\FormatTransfer_Tools\ffmpeg\bin\Video[4096x2304][30fps][h264]_Audio[mp3].avi
总结关注 私信免费领取一份99的视频学习资料哦