亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

使用 PHP 庫合并 FFMPEG 音頻

使用 PHP 庫合并 FFMPEG 音頻

PHP
慕沐林林 2023-05-12 14:32:27
我一直在使用 FFMPEG,仍然是一個初學者,但我學到了很多東西。所以我必須合并 2 個音頻,一個屬于視頻,一個只是 .mp3 文件。我得到了正確的 shell exec,但現在我想使用 FFMPEG php 庫。這是正確的(我認為)和有效的 shell 命令:/usr/bin/ffmpeg -y -i video-short.mp4 -i audio-short.mp3 -filter_complex "[0:a][1:a]amerge=inputs=2 [a]" -map 0:v -map "[a]" -c:v copy -c:a aac -ac 2 -b:a 128k video3-audio-output.mp4這將輸出帶有 2 個音頻的視頻。在我編寫了 php 代碼并編輯了一些輸出的代碼以便腳本工作之后,我得到了這個。這是 php 代碼,我似乎無法弄清楚如何返回正確的 shell。        $video = $this->ffmpeg->openAdvanced([        'video-short.mp4',        'audio-short.mp3'    ]);    $video        ->filters()        ->custom('[0:a][1:a]', 'amerge=inputs=', '2[a]' );    $video        ->map(array('0:v', '"[a]"'), new X264('aac'),        'video3-audio-output.mp4'    )        ->save();現在我需要獲取代碼以返回類似 shell 的東西,它確實有效,我已經嘗試了很多小時。這是我的 php 返回的內容,它給出了編碼錯誤,另外No channel layout for input 1/usr/bin/ffmpeg -y -i video-short.mp4 -i audio-short.mp3 -filter_complex [0:a][1:a]amerge=inputs=2[a] -map 0:v -map "[a]" -vcodec libx264 -acodec aac -b:a 128k video3-audio-output.mp4(編輯)所以我將“復制”添加到 FFMpeg\Format\Video\X264 getAvaiableVideoCodecs()。如果我將 'copy' 添加到 new X264('aac', 'copy') 它會轉儲正確的 Shell 命令,但它仍然會在“編碼失敗”時崩潰
查看完整描述

1 回答

?
心有法竹

TA貢獻1866條經驗 獲得超5個贊

我找到了解決方案,這可能是一個常見問題。


因此,您需要將“復制”添加到 FFMpeg\Format\Video\X264 getAvaiableVideoCodecs()。


但不是“amerge”,它出于某種原因不會在前端合并給定的音頻文件并返回編碼失敗。我們使用混合。


使用混合。這是一個示例,說明代碼在運行時的樣子。


$video = $this->ffmpeg->openAdvanced(array(

    'videoplayback.mp4',

    'audio-short.mp3'

));

$video

    ->filters()

    ->custom('[0:a][1:a]', 'amix=inputs=', '2[a]' );

$video

    ->map(array('0:v', '[a]'), new X264('aac', 'copy'),

   'video3-audio-output.mp4'

)

    ->save();

這可以幫助將來的人們。


查看完整回答
反對 回復 2023-05-12
  • 1 回答
  • 0 關注
  • 301 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號