溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

ffmpeg安裝使用及ffmpeg-php安裝

發布時間:2020-06-08 07:28:03 來源:網絡 閱讀:5612 作者:鐵剛 欄目:web開發

一、yum安裝ffmpeg

1、添加yum源:

vim /etc/yum.repos.d/dag.repo
[dag]
name=Dag RPM Repository for Red Hat Enterprise Linux
baseurl=http://apt.sw.be/redhat/el$releasever/en/$basearch/dag
gpgcheck=0
enabled=1

2、安裝

yum -y install ffmpeg

yum安裝FFmpeg比源碼編譯安裝省時省力,但缺點也很明顯,版本過老,為0.6.5版,最新版已為2.8,新舊版很多參數有所差異,舊版支持的格式也沒有新版豐富。編譯安裝太麻煩,安裝比較復雜。


二、ffmpeg使用

1、壓縮視頻

ffmmpeg -i $videoFilename -strict -2 -vcodec libx264  -vpre libx264-default -vb streamCode $newFilename

其中streamCode為轉換后的碼流。比如 1024K。

例:

ffmpeg -i lol.mp4 -strict -2 -vcodec libx264 -vpre libx264-default -vb 512K lol_1.mp4

不加-vpre libx264-default會報錯,錯誤內容:

[libx264 @ 0x1bef570]use an encoding preset (e.g. -vpre medium)

[libx264 @ 0x1bef570]preset usage: -vpre <speed> -vpre <profile>

[libx264 @ 0x1bef570]speed presets are listed in x264 --help

[libx264 @ 0x1bef570]profile is optional; x264 defaults to high

需要指定配置文件,在/usr/share/ffmpeg目錄下有許多的配置文件。根據需要調用不同的就好。配置文件是以.ffpreset結尾的,加參數時不需要加這個后綴名。

2、截取視頻中縮略圖

ffmmpeg -y -i $mp4FileName -vframes 1 -ss 秒數 -f mjpeg -s 1280*640 -an $thumbFileName

例:

ffmpeg -y -i lol.mp4 -vframes 1 -ss 16 -f mjpeg -s 1280*640 -an lol.jpg

3、視頻轉MP3

ffmpeg -i $videoFilename -vn -ar 44100 -ac 2 -ab 192 -f mp3 $audioFilename

例:

ffmpeg -i lol.mp4 -vn -ar 44100 -ac 2 -ab 192 -f mp3 lol.mp3

三、ffmpeg-php擴展安裝

1、安裝ffmpeg-devel

yum -y install ffmpeg-devel

2、編譯安裝ffmpeg-php

tar jxvf ffmpeg-php-0.6.2.tbz2
cd ffmpeg-php-0.6.2
/usr/local/php/bin/phpize 
./configure --with-php-config=/usr/local/php/bin/php-config --with-ffmpeg
make && make install

./configure --with-php-config=/usr/local/php/bin/php-config --with-ffmpeg --enable-skip-gd-check     加上--enable-skip-gd-check在phpinfo中查看ffmpeg-php gd support會是enabled不加的話disabled。

報錯信息:

/root/ffmpeg-php-0.6.2/ffmpeg_movie.c: 在函數‘zim_ffmpeg_movie___construct’中:

/root/ffmpeg-php-0.6.2/ffmpeg_movie.c:312: 錯誤:‘list_entry’未聲明(在此函數內第一次使用)

/root/ffmpeg-php-0.6.2/ffmpeg_movie.c:312: 錯誤:(即使在一個函數內多次出現,每個未聲明的標識符在其

/root/ffmpeg-php-0.6.2/ffmpeg_movie.c:312: 錯誤:所在的函數內也只報告一次。)

/root/ffmpeg-php-0.6.2/ffmpeg_movie.c:312: 錯誤:‘le’未聲明(在此函數內第一次使用)

/root/ffmpeg-php-0.6.2/ffmpeg_movie.c:347: 錯誤:expected ‘;’ before ‘new_le’

/root/ffmpeg-php-0.6.2/ffmpeg_movie.c:357: 錯誤:‘new_le’未聲明(在此函數內第一次使用)

/root/ffmpeg-php-0.6.2/ffmpeg_movie.c: 在函數‘_php_read_av_frame’中:

/root/ffmpeg-php-0.6.2/ffmpeg_movie.c:1216: 警告:不建議使用‘avcodec_decode_video’(聲明于 /usr/include/libavcodec/avcodec.h:3452)

make: *** [ffmpeg_movie.lo] 錯誤 1

解決錯誤:

vim /root/ffmpeg-php-0.6.2/ffmpeg_movie.c
row 312: list_entry *le; 改為zend_rsrc_list_entry *le;
row 347: list_entry new_le;改為 zend_rsrc_list_entry new_le;
row 361: hashkey_length+1, (void *)&new_le, sizeof(list_entry),改為hashkey_length+1, (void *)&new_le,sizeof(zend_rsrc_list_entry),

然后重新make提示make test,

make test

報錯信息:

+-----------------------------------------------------------+

|                       ! ERROR !                           |

| The test-suite requires that proc_open() is available.    |

| Please check if you disabled it in php.ini.               |

+-----------------------------------------------------------+

解決錯誤:

編輯php.ini文件,找到disable_functions去掉proc_open。

然后在make test,make install

Do you want to send this report now? [Yns]: N     選擇N

3、在php.ini中加入擴展

sed -i '/the dl()/i extension = "ffmpeg.so"' /usr/local/php/etc/php.ini

4、驗證

在phpinfo.php中查看是否有了ffmpeg-php。

直接輸入ffmpeg查看ffmpeg一些信息

ffmpeg
FFmpeg version 0.6.5, Copyright (c) 2000-2010 the FFmpeg developers
  built on Jan 29 2012 17:52:15 with gcc 4.4.5 20110214 (Red Hat 4.4.5-6)
  configuration: --prefix=/usr --libdir=/usr/lib64 --shlibdir=/usr/lib64 --mandir=/usr/share/man --incdir=/usr/RCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic -fPIC' --enable-avfilter --ele-libfaad --enable-libfaadbin --enable-libgsm --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencibtheora --enable-libx264 --enable-gpl --enable-nonfree --enable-postproc --enable-pthreads --enable-shared --e
  libavutil     50.15. 1 / 50.15. 1
  libavcodec    52.72. 2 / 52.72. 2
  libavformat   52.64. 2 / 52.64. 2
  libavdevice   52. 2. 0 / 52. 2. 0
  libavfilter    1.19. 0 /  1.19. 0
  libswscale     0.11. 0 /  0.11. 0
  libpostproc   51. 2. 0 / 51. 2. 0
Hyper fast Audio and Video encoder
usage: ffmpeg [options] [[infile options] -i infile]... {[outfile options] outfile}...
Use -h to get full help or, even better, run 'man ffmpeg'




向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女