摘要:個(gè)人博客地址使用做視頻水印遇到的,關(guān)于的處理使用做視頻水印如下方法時(shí)候時(shí)候會報(bào)錯(cuò)錯(cuò)誤位置這邊是了,去掉報(bào)錯(cuò)如下。直接使用命令行生成設(shè)置水印位置參考資料
個(gè)人博客地址: http://www.xixinice.com
PHP 使用 PHP-FFMpeg 做視頻水印 遇到的keng,
關(guān)于 "Encoding failed", "Unknown encoder "libfaac"" 的處理
使用 PHP-FFMpeg 做視頻水印
demo 如下:
$ffmpeg = FFMpegFFMpeg::create(array( "ffmpeg.binaries" => "/opt/local/ffmpeg/bin/ffmpeg", "ffprobe.binaries" => "/opt/local/ffmpeg/bin/ffprobe", "timeout" => 3600, // The timeout for the underlying process "ffmpeg.threads" => 12, // The number of threads that FFMpeg should use )); $video = $ffmpeg->open("video.mpg"); $relative = array( "position"=>"relative", "bottom"=>50, "right"=>50 ); $image = "/xxx/watermarkMark.png"; $video->filters()->watermark($image, $relative); $video->save(new FFMpegFormatVideoX264(), "export-x264.mp4")
error:
1.save() 方法時(shí)候 時(shí)候會報(bào)錯(cuò):
Encoding failed
錯(cuò)誤位置
FILE: /xxx/vendor/php-ffmpeg/php-ffmpeg/src/FFMpeg/Media/AbstractVideo.php LINE: 106
2.這邊是catch 了 error,去掉 try catch,報(bào)錯(cuò)如下。
ffmpeg failed to execute command "/usr/local/bin/ffmpeg" "-y" "-i" "/xxx/input.mp4" "-vcodec" "libx264" "-acodec" "libfaac" "-b:v" "1000k" "-refs" "6" "-coder" "1" "-sc_threshold" "40" "-flags" "+loop" "-me_range" "16" "-subq" "7" "-i_qfactor" "0.71" "-qcomp" "0.6" "-qdiff" "4" "-trellis" "1" "-b:a" "128k" "-vf" "movie=/xxx/waterMark.png [watermark];in overlay=50:80 [out]" "-pass" "1" "-passlogfile" "/var/tmp/ffmpeg-passesabcdefg/pass-abcdf" "/xxx/output.mp4"
錯(cuò)誤位置
FILE: /xxx/vendor/alchemy/binary-driver/src/Alchemy/BinaryDriver/ProcessRunner.php LINE: 100
從 "-acodec" "libfaac",可以看出 這邊encode 使用了 "libfaac"
把它放到命令行去執(zhí)行,會報(bào)錯(cuò):
Unknown encoder "libfaac"
至此,也就找打了關(guān)鍵所在,是少了"libfaac"
但是,去查找這個(gè)配置的時(shí)候,會發(fā)現(xiàn)找不到這個(gè)。
configuration: --prefix=
Options --with
這2個(gè)都沒有。
3.原因是官方已經(jīng)移除了,現(xiàn)在用 "libfdk_aac" 來代替了,但是 github 庫沒有更新
libfaac is a crappy encoder; there are better alternatives.
FFmpeg removed libfaac support.
4.所以代碼這邊需要自己傳參數(shù),不能使用默認(rèn)
同時(shí)安裝的時(shí)候,option 必須帶上參數(shù) --with-fdk-aac
原代碼:
public function __construct($audioCodec = "libfaac", $videoCodec = "libx264") { $this ->setAudioCodec($audioCodec) ->setVideoCodec($videoCodec); }
所以new 的時(shí)候需要傳參數(shù):
new FFMpegFormatVideoX264("libfdk_aac")
這樣即可以。
ps:
直接使用ffmpeg 命令行 生成:
ffmpeg -i input.mp4 -i watermark.jpg -filter_complex "overlay" output.mp4
//設(shè)置水印位置
ffmpeg -i input.mp4 -i watermark.jpg -filter_complex "overlay=x=10:y=10" output.mp4
參考資料:
https://stackoverflow.com/que...
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/29654.html
摘要:背景因?yàn)楣ぷ髦杏胁糠謨?nèi)容是使用來獲取音視頻信息以及對音視頻文件進(jìn)行處理,遇到了一些問題,所以一路搜過來。因?yàn)橐曨l處理必然離不開,網(wǎng)上抄了一段是領(lǐng)先的多媒體框架。 背景: 因?yàn)楣ぷ髦杏胁糠謨?nèi)容是使用PHP來獲取音/視頻信息以及對音視頻文件進(jìn)行處理,遇到了一些問題,所以一路搜過來。 FFmpeg 因?yàn)橐曨l處理必然離不開FFmpeg,網(wǎng)上抄了一段: FFmpeg是領(lǐng)先的多媒體框架。 在這個(gè)框...
摘要:什么,只要一行代碼就能搞定人臉識別當(dāng)然是假的啦。雖然不能一行就搞定,依靠強(qiáng)大的人臉識別包,只要十多行代碼完全可以實(shí)現(xiàn)人臉識別的功能。經(jīng)測試識別正確率高達(dá)。下安裝比較簡單,命令行下幾行代碼就搞定,安裝見這里。 什么,只要一行代碼就能搞定人臉識別?當(dāng)然是假的啦。 雖然不能一行就搞定,依靠python強(qiáng)大的人臉識別包,只要十多行代碼完全可以實(shí)現(xiàn)人臉識別的功能。這就叫站在巨人的肩膀上,看得更高...
閱讀 2793·2021-10-11 10:57
閱讀 2402·2021-08-27 16:20
閱讀 1384·2019-08-30 13:03
閱讀 1563·2019-08-30 12:50
閱讀 3336·2019-08-29 14:16
閱讀 1561·2019-08-29 11:12
閱讀 1613·2019-08-28 17:53
閱讀 2893·2019-08-27 10:58