FFmpeg開發(fā)環(huán)境的構(gòu)建
總結(jié)中有福利
一、相關(guān)資源介紹
本文介紹了在Linux平臺(tái)x86(和x86-64)體系結(jié)構(gòu)上安裝ffmpeg編譯的過程。
其他嵌入式平臺(tái)需要交叉編譯,過程相似,不詳細(xì)說明。
本實(shí)驗(yàn)在opensuse和Ubuntu平臺(tái)上都進(jìn)行了驗(yàn)證。使用Lsb_release -a命令查看系統(tǒng)發(fā)行版。
Opensuse平臺(tái)版本:openSUSE Leap 42.3。
Ubuntu平臺(tái)版本:Ubuntu 16.04.5 LTS。
1.yasm/NASM
舊式ffmpeg和x264使用yasm匯編程序
Yasm是英特爾x86體系結(jié)構(gòu)上的匯編程序和反匯編程序。Yasm是完全重寫的Netwide程序集(NASM)。Yasm通??膳cNASM交換,并支持x86和x86-64體系結(jié)構(gòu)。許可協(xié)議是修訂后的BSD許可證。
其中,Yasm用于在x86平臺(tái)上編譯ffmpeg的某些程序集代碼。
Yasm是x86平臺(tái)匯編程序,因此不需要交叉編譯。對(duì)于其他平臺(tái)(如Arm),如果交叉編譯工具鏈包含相應(yīng)的匯編程序,則在交叉編譯時(shí)需要-disable-yasm選項(xiàng)。
Yasm主頁:
新的ffmpeg和x264版本將轉(zhuǎn)換為nasm匯編程序
網(wǎng)絡(luò)組裝程序(NASM)是基于英特爾x86體系結(jié)構(gòu)的匯編和反匯編工具。NASM被認(rèn)為是Linux平臺(tái)上最受歡迎的匯編工具之一。
Ffmpeg工程中實(shí)現(xiàn)了h265解碼器,但沒有實(shí)現(xiàn)h265編碼器。因此,必須安裝第三方編碼器x265
4.SDL
簡(jiǎn)單直接媒體層(SDL)是一個(gè)開源跨平臺(tái)多媒體開發(fā)庫。SDL提供了多個(gè)控制圖像、聲音和輸出輸入的函數(shù),封裝了復(fù)雜的視頻和音頻基本任務(wù),從而簡(jiǎn)化了視頻和音頻處理的困難。目前,SDL在游戲、模擬器、媒體播放器等多媒體應(yīng)用程序開發(fā)中使用較多。
二、編譯過程
1.安裝路徑規(guī)劃
編譯源代碼獲得的程序資源安裝到用戶目錄/home/think中。安裝后,bin、include、lib和share等目錄將添加到/home/think目錄中
配置環(huán)境變量
編輯/etc/profile以添加以下行:
export path=/home/think/bin 3360 $ path
export library _ path=/home/think/lib 3360/home/think/lib 643360 $ library _ path
export pkg _ config _ path=/home/think/lib/pkgconfig 3360 $ pkg _ config _ path
export c _ include _ path=/home/think/include 3360 $ c _ include _ path
1
2
3
4
這些環(huán)境變量是編譯程序所需的庫文件、頭文件路徑和可執(zhí)行文件所在的路徑。
從命令行運(yùn)行以下命令,立即應(yīng)用新設(shè)置的環(huán)境變量:
源/etc/配置文件
1
配置動(dòng)態(tài)庫路徑
編輯/etc以添加以下兩行:
/home/think/lib
/home/think/lib64
1
2
Ld。的內(nèi)容是運(yùn)行程序時(shí)需要搜索的動(dòng)態(tài)庫路徑。
從命令行運(yùn)行以下命令,立即應(yīng)用新設(shè)置的動(dòng)態(tài)庫路徑:
Ldconfig
1
2.yasm/nasm
舊式ffmpeg和x264使用yasm匯編程序
Tar -zxvf ya
Cd ya
./configure-prefix=/home/think
Make
Make install
1
2
3
4
5
6
新的ffmpeg和x264版本將轉(zhuǎn)換為nasm匯編程序
確切地說,從哪個(gè)版本過渡到nasm并不清楚。
Tar -zxvf na
Cd na
./configure-prefix=/home/think
Make
Make install
1
2
3
4
5
6
3.x264
請(qǐng)從網(wǎng)站下載源軟件包la。這是git倉庫的主分支源代碼。通過手動(dòng)輸入以下地址下載stable分支:
br/>tar -jxvf la
cd x264-snapshot-20181119-2245-stable/
./configure --prefix=/home/think --enable-shared --enable-static
make
make install
1
2
3
4
5
6
注意第4行配置選項(xiàng)中,未給出–disable-asm選項(xiàng),則表示啟用匯編選項(xiàng)
4. x265
tar -zxvf x265_2.9.
cd x265_2.9/build/linux/
.
在上一行命令運(yùn)行快結(jié)束時(shí),出現(xiàn)cmake配置信息編輯界面,將CMAKE_INSTALL_PREFIX的值改成/home/think
make
make install
1
2
3
4
5
6
7
5. SDL
注意:應(yīng)先安裝SDL,再安裝ffmpeg,否則ffmpeg編譯時(shí)不會(huì)生成ffplay
原因如參考資料[3]所述。
兩種安裝方式,推薦第二種方式,可能遇到的問題比較少
編譯源碼安裝(不推薦)
tar -zxvf SDL2-2.0.9.
cd SDL2-2.0.9/
./configure --prefix=/home/think
make
make install
1
2
3
4
5
6
通過編譯源碼安裝的方式,編譯安裝成功后運(yùn)行ffplay可能會(huì)遇到挺多問題,參“六、問題描述”
通過軟件源在線安裝(推薦)
opensuse平臺(tái):
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平臺(tái):
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
cd cd
./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
五、測(cè)試
在命令行中運(yùn)行如下測(cè)試命令:
ffmpeg -i bigbuckbunny_480x272.h265 bigbuckbunny_480x272.mp4
ffplay 128x128.264
ffprobe 128x128.264
1
2
3
注意:
遠(yuǎn)程終端處于控制臺(tái)命令行模式(運(yùn)行級(jí)別3),無權(quán)限調(diào)用SDL,因此無法測(cè)試ffplay,但可以測(cè)試ffmpeg和ffprobe。測(cè)試ffplay需要X11控制臺(tái)模式(運(yùn)行級(jí)別5,即GUI圖形模式)。
六、問題記錄
1. No available video device
錯(cuò)誤提示:
Could not initialize SDL - No available video device
(Did you set the DISPLAY variable?)
原因分析:
解決方法:
a) 安裝x11的庫文件:
opensuse平臺(tái):
zypper install libX11-devel
zypper install xorg-x11-devel
1
2
ubuntu平臺(tái):
apt-get install libx11-dev
apt-get install xorg-dev
1
2
b) 重新編譯安裝SDL
2. Audio target ‘pulse’ not available
錯(cuò)誤提示:
Could not initialize SDL - Audio target ‘pulse’ not available
(Did you set the DISPLAY variable?)
原因分析:
解決方法:
a) 安裝缺少的庫
opensuse平臺(tái):
zypper install libpulse-devel
zypper install libasound2
zypper install libasound2-devel // 實(shí)測(cè)不安裝此包也無問題,若軟件源中無此包則不必安裝
1
2
3
ubuntu平臺(tái):
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
錯(cuò)誤提示:
編譯ffmpeg,運(yùn)行./configure --enable-libx265 ...出現(xiàn)如下錯(cuò)誤提示:
x265 not found using pkg-config
原因分析:
參考資料[5]
解決方法:
export PKG_CONFIG_PATH=/home/think/lib/pkgconfig:$PKG_CONFIG_PATH
FFMPEG開發(fā)必備工具
FFmpeg工具使用總結(jié)
一、 FFmpeg是什么?
簡(jiǎn)單說,F(xiàn)Fmpeg就是一個(gè)很好的,免費(fèi)的,開源的視頻轉(zhuǎn)換工具。詳細(xì)說,F(xiàn)Fmpeg是一個(gè)開源免費(fèi)跨平臺(tái)的視頻和音頻流方案,屬于自由軟件,采用LGPL或GPL許可證(依據(jù)你選擇的組件)。它提供了錄制、轉(zhuǎn)換以及流化音視頻的完整解決方案。它包含了非常先進(jìn)的音頻/視頻編解碼庫libavcodec,為了保證高可移植性和編解碼質(zhì)量,libavcodec里很多codec都是從頭開發(fā)的。
FFmpeg的官網(wǎng)是:,下載地址:download.html。需要的同學(xué)可以從官網(wǎng)自行下載。
官網(wǎng)的解釋是:ffmpeg is a command line tool to convert multimedia files between formats.即:ffmpeg是用來轉(zhuǎn)換不同格式的多媒體文件的一個(gè)命令行工具。
二、 FFmpeg功能是什么?
FFmpeg有非常強(qiáng)大的功能 ,包括視頻采集功能、視頻格式轉(zhuǎn)換、視頻抓圖、給視頻加水印等。ffmpeg是用來轉(zhuǎn)換不同格式的多媒體文件的一個(gè)命令行工具。
這里重點(diǎn)講講視頻格式轉(zhuǎn)換功能,ffmpeg視頻轉(zhuǎn)換功能。視頻格式轉(zhuǎn)換,比如可以將多種視頻格式轉(zhuǎn)換為flv格式,可不是視頻信號(hào)轉(zhuǎn)換 。
ffmpeg可以輕易地實(shí)現(xiàn)多種視頻格式之間的相互轉(zhuǎn)換(wma,rm,MP4,mod等),例如可以將攝錄下的視頻MP4等轉(zhuǎn)成現(xiàn)在視頻網(wǎng)站所采用的flv格式。
三、 FFmpeg究竟怎么用?
第一,下載FFmpeg。
先根據(jù)自己的系統(tǒng)到官網(wǎng)是:下載好對(duì)應(yīng)版本的FFmpeg,下載地址:download.html。一般工具名稱為:,解壓后可以直接使用該工具了,直接到D:\路徑\ffmpeg-20140123-git-e6d1c66-win64-static\bin\ 下,準(zhǔn)備好命令行和批處理文件就可以直接轉(zhuǎn)換了。
第二,命令集的簡(jiǎn)單實(shí)用方法
1.獲取視頻的信息
ffmpeg -i video.MP4
2.將圖片序列合成視頻
ffmpeg -f image2 -i image%d.jpg video.mpg
上面的命令會(huì)把當(dāng)前目錄下的圖片(名字如:image1.jpg. image2.jpg. 等...)合并成video.mpg
3.將視頻分解成圖片序列
ffmpeg -i video.mpg image%d.jpg
上面的命令會(huì)生成image1.jpg. image2.jpg. ...
支持的圖片格式有:PGM. PPM. PAM. PGMYUV. JPEG. GIF. PNG. TIFF. SGI
4.為視頻重新編碼以適合在iPod/iPhone上播放
ffmpeg -i input -acodec aac -ab 128kb -vcodec mpeg4 -b 1200kb -mbd 2 -flags +4mv+trell -aic 2 -cmp 2 -subcmp 2 -s 320x180 -title X
說明:
* 源視頻:
* 音頻編碼:aac
* 音頻位率:128kb/s
* 視頻編碼:mpeg4
* 視頻位率:1200kb/s
* 視頻尺寸:320 X 180
* 生成的視頻:
5.為視頻重新編碼以適合在PSP上播放
ffmpeg -i -b 300 -s 320x240 -vcodec xvid -ab 32 -ar 24000 -acodec aac
說明:
* 源視頻:
* 音頻編碼:aac
* 音頻位率:32kb/s
* 視頻編碼:xvid
* 視頻位率:1200kb/s
* 視頻尺寸:320 X 180
* 生成的視頻:
6.從視頻抽出聲音.并存為Mp3
ffmpeg -i -vn -ar 44100 -ac 2 -ab 192 -f mp3
說明:
* 源視頻:
* 音頻位率:192kb/s
* 輸出格式:mp3
* 生成的聲音:
7.將wav文件轉(zhuǎn)成Mp3
ffmpeg -i -vn -ar 44100 -ac 2 -ab 192 -f mp3
8.將.MP4視頻轉(zhuǎn)成.mpg
ffmpeg -i video_origine.MP4 video_
9.將.mpg轉(zhuǎn)成.MP4
ffmpeg -i video_origine.mpg video_
10.將.MP4轉(zhuǎn)成gif動(dòng)畫(未壓縮)
ffmpeg -i video_origine.MP4 gi
11.合成視頻和音頻
ffmpeg -i -i video_origine.MP4 video_
12.將.MP4轉(zhuǎn)成.flv
ffmpeg -i video_origine.MP4 -ab 56 -ar 44100 -b 200 -r 15 -s 320x240 -f flv video_
13.將.MP4轉(zhuǎn)成dv
ffmpeg -i video_origine.MP4 -s pal -r pal -aspect 4:3 -ar 48000 -ac 2 video_
或者:
ffmpeg -i video_origine.MP4 -target pal-dv video_
14.將.MP4壓縮成divx
ffmpeg -i video_origine.MP4 -s 320x240 -vcodec msmpeg4v2 video_
15.將Ogg Theora壓縮成Mpeg dvd
ffmpeg -i -s 720x576 -vcodec mpeg2video -acodec mp3
16.將.MP4壓縮成SVCD mpeg2
NTSC格式:
ffmpeg -i video_origine.MP4 -target ntsc-svcd video_
PAL格式:
ffmpeg -i video_origine.MP4 -target pal-svcd video_
17.將.MP4壓縮成VCD mpeg2
NTSC格式:
ffmpeg -i video_origine.MP4 -target ntsc-vcd video_
PAL格式:
ffmpeg -i video_origine.MP4 -target pal-vcd video_
18.多通道編碼
ffmpeg -i fichierentree -pass 2 -passlogfile ffmpeg2pass fichiersortie-2
19.從flv提取mp3
ffmpeg -i -ab 128k de
第三,認(rèn)識(shí)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\;:
Metadata:
encoder : Lav
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 ) (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)
第四,實(shí)例詳解FFmpeg視頻轉(zhuǎn)換的參數(shù)設(shè)置方法
例如:ffmpeg -y -i "; -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.***"
# 參數(shù)解釋:
-y(覆蓋輸出文件,即如果1.***文件已經(jīng)存在的話,不經(jīng)提示就覆蓋掉了)
-i "1.MP4"(輸入文件是和ffmpeg在同一目錄下的1.MP4文件,可以自己加路徑,改名字)
-title "Test"(在PSP中顯示的影片的標(biāo)題)
-vcodec xvid(使用XVID編碼壓縮視頻,不能改的)
-s 1920*1080(輸出的分辨率為1920*1080,注意片源一定要是16:9的不然會(huì)變形)
-r 30(幀數(shù),一般就用這個(gè)吧)
-b 1500(視頻數(shù)據(jù)流量,用-b xxxx的指令則使用固定碼率,數(shù)字隨便改,1500以上沒效果;還可以用動(dòng)態(tài)碼率如:-qscale 4和-qscale 6,4的質(zhì)量比6高)
-acodec aac(音頻編碼用AAC)
-ac 2(聲道數(shù)1或2)
-ar 24000(聲音的采樣頻率,好像PSP只能支持24000Hz)
-ab 128(音頻數(shù)據(jù)流量,一般選擇32、64、96、128)
-vol 200(200%的音量,自己改)
-f psp(輸出psp專用格式)
-muxvb 768(好像是給PSP機(jī)器識(shí)別的碼率,一般選擇384、512和768,我改成1500,PSP就說文件損壞了)
"test.***"(輸出文件名,也可以加路徑改文件名)
第五,不同格式之間的相互轉(zhuǎn)換
◆將任意視頻格式(如MP4)轉(zhuǎn)換成視頻格式(如MPEG1)+音頻格式(AC3)的視頻:
ffmpeg -y -i E:\FormatTransfer_Tools\ffmpeg\bin\ -vcodec mpeg1video –s 1920*1080 –r 60 -acodec ac3 E:\FormatTransfer_Tools\ffmpeg\bin\Video[1920x1080][60fps][MPEG1]_Audio[ac3].mpeg
◆將任意視頻格式(如MP4)轉(zhuǎn)換成視頻格式(如MPEG2)+音頻格式(DTS)的視頻:
ffmpeg -y -i E:\FormatTransfer_Tools\ffmpeg\bin\ -vcodec mpeg2video –s 1920*1080 –r 60 -acodec dca -strict -2 E:\FormatTransfer_Tools\ffmpeg\bin\Video[1920x1080][60fps][MPEG2]_Audio[DTS].mpeg
◆將任意視頻格式(如MP4)轉(zhuǎn)換成視頻格式(如MPEG2)+音頻格式(PCM)的視頻:
ffmpeg -y -i E:\FormatTransfer_Tools\ffmpeg\bin\ -vcodec mpeg2video –s 1920*1080 –r 60 -acodec pcm_alaw E:\FormatTransfer_Tools\ffmpeg\bin\Video[1920x1080][60fps][MPEG2]_Audio[PCM].mpeg
◆將任意視頻格式(如MP4)轉(zhuǎn)換成視頻格式(如MPEG4)+音頻格式(MP3)的視頻:
ffmpeg -y -i E:\FormatTransfer_Tools\ffmpeg\bin\ -vcodec mpeg4 –s 1920*1080 –r 60 -acodec dlibmp3lame E:\FormatTransfer_Tools\ffmpeg\bin\Video[1920x1080][60fps][MPEG4]_Audio[ac3].mpeg
◆將任意視頻格式(如MP4)轉(zhuǎn)換成視頻格式(如MJPEG)+音頻格式(MP2)的視頻:
ffmpeg -y -i E:\FormatTransfer_Tools\ffmpeg\bin\ -vcodec mjpeg –s 1920*1080 –r 60 -acodec mp2 E:\FormatTransfer_Tools\ffmpeg\bin\Video[1920x1080][60fps][ MJPEG]_Audio[MP2].mpeg
◆將任意視頻格式(如MP4)轉(zhuǎn)換成視頻格式(如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)轉(zhuǎn)換成視頻格式(如H.263)+音頻格式(AC3)的視頻:
ffmpeg -y -i E:\FormatTransfer_Tools\ffmpeg\bin\ -vcodec h263p -s 720x480 -acodec ac3 E:\FormatTransfer_Tools\ffmpeg\bin\Video[720x480][60fps][h263]_Audio[ac3].MP4
◆將任意視頻格式(如MP4)轉(zhuǎn)換成視頻格式(如H.264)+音頻格式(AAC)的視頻:
ffmpeg -y -i E:\FormatTransfer_Tools\ffmpeg\bin\ -vcodec libx264rgb –s 1920*1080 -r 30 -acodec libvo_aacenc E:\FormatTransfer_Tools\ffmpeg\bin\Video[1920x1080][30fps][h264]_Audio[aac].3gp
◆將任意視頻格式(如MP4)轉(zhuǎn)換成視頻格式(如Sorenson_Spark)+音頻格式(MP3)的視頻:
ffmpeg -y -i E:\FormatTransfer_Tools\ffmpeg\bin\ -vcodec flv –s 1920*1080 –r 60 -acodec libmp3lame E:\FormatTransfer_Tools\ffmpeg\bin\Video[1920x1080][60fps][Sorenson_Spark]_Audio[MP3].MP4
◆將任意視頻格式(如MP4)轉(zhuǎn)換成視頻格式(如WMV3)+音頻格式(WMA)的視頻:
ffmpeg -y -i E:\FormatTransfer_Tools\ffmpeg\bin\ -vcodec wmv3image –s 1920*1080 –r 60 -acodec wmav1 E:\FormatTransfer_Tools\ffmpeg\bin\Video[1920x1080][60fps][WMV3]_Audio[wma1].MP4
◆將任意視頻格式(如MP4)轉(zhuǎn)換成視頻格式(如XviD)+音頻格式(AC3)的視頻:
ffmpeg -y -i E:\FormatTransfer_Tools\ffmpeg\bin\ -vcodec libxvid –s 1920*1080 –r 60 -acodec ac3 E:\FormatTransfer_Tools\ffmpeg\bin\Video[1920x1080][60fps][XviD]_Audio[AC3_fixed].MP4
◆將任意視頻格式(如MP4)轉(zhuǎn)換成視頻格式(如RV)+音頻格式(AAC)的視頻:
ffmpeg -y -i E:\FormatTransfer_Tools\ffmpeg\bin\ -vcodec rv10 -s 1280x720 -acodec libvo_aacenc E:\FormatTransfer_Tools\ffmpeg\bin\Video[1280x720][60fps][RV10]_Audio[aac].MP4
◆將任意視頻格式(如MP4)轉(zhuǎn)換成視頻格式(如H.264)+分辨率為4k的視頻:
ffmpeg -y -i E:\FormatTransfer_Tools\ffmpeg\bin\ -vcodec libx264rgb -s 4096x2304 -r 30 -acodec libmp3lame E:\FormatTransfer_Tools\ffmpeg\bin\Video[4096x2304][30fps][h264]_Audio[mp3].avi
總結(jié)關(guān)注+私信免費(fèi)領(lǐng)取一份99的視頻學(xué)習(xí)資料哦
1.《【雅馬哈U8大燈殼】我將花30分鐘學(xué)習(xí)Ffmpeg視頻開發(fā)和應(yīng)用程序?!吩曰ヂ?lián)網(wǎng),旨在傳遞更多網(wǎng)絡(luò)信息知識(shí),僅代表作者本人觀點(diǎn),與本網(wǎng)站無關(guān),侵刪請(qǐng)聯(lián)系頁腳下方聯(lián)系方式。
2.《【雅馬哈U8大燈殼】我將花30分鐘學(xué)習(xí)Ffmpeg視頻開發(fā)和應(yīng)用程序?!穬H供讀者參考,本網(wǎng)站未對(duì)該內(nèi)容進(jìn)行證實(shí),對(duì)其原創(chuàng)性、真實(shí)性、完整性、及時(shí)性不作任何保證。
3.文章轉(zhuǎn)載時(shí)請(qǐng)保留本站內(nèi)容來源地址,http://f99ss.com/auto/2591918.html