ffmpeg – 指令紀錄

替換影片音訊,原本的影片聲音將被替換

參考

 

修剪音樂長度

參考

 

改變音量

參考

 

從影片提取音訊

參考

 

加入第二音軌

參考

 

合併兩個音訊到一個音訊

1. 這是合併聲道

2. 使用 amix 合併兩種聲音,參考官網 

參考

 

將背景音樂加入影片

ffmpeg 似乎沒有這個指令,必須多個步驟

  1. 從影片提取音訊
  2. 使用 amix 合併兩種聲音
  3. 替換影片音訊

 

FFmpeg 多個指令教學

參考

ffmpeg – 在 ubuntu 16升級的方法

參考網友

先加入新的 PPA ,這是非 Ubuntu 官方的軟體庫,目前 ffmpeg 的到了 3.4 但是官方的還在 2.8 版。

 

升級列表並安裝更新

 

最後打上 ffmpeg 就可以看到是否已經到較新版本。自動移除升級後沒有用到的舊版本,可以打上

 

 

 

ffmpeg – Windows 安裝

下載

https://www.ffmpeg.org/download.html

我目前的版本是 3.4,Windows 64-bit,Static。

解壓縮

 

新增一個資料夾 C:\ffmpeg ,再解壓縮檔案到 C:\ffmpeg

設定連接

開始 > 控制台 > 系統及安全性 > 右側「系統」 > 左側「進階系統設定」

環境變數

使用者環境變數 > 尋找變數「Path」> 編輯 > 新增

填上我們的 ffmpeg 所在路徑 「c:\ffmpeg\bin」,按下確定

 

重新啟動電腦,開機後在命令提示字元 (cmd) 打上。我的狀況是沒有重新啟動電腦,系統會找不到 ffmpeg 指令。

看到版本資訊,代表安裝成功

參考網友

php – 匿名函數 – 傳遞參數與繼承變數適合的使用場景

匿名函數(Anonymous functions、匿名函式、閉包)可允許創建一個沒有固定名稱的函數,雖然可以用在臨時使用,但其實比較常用在回調(回呼、callback)的狀況。

傳遞參數 (傳值呼叫 Call By Value)

 

繼承變數

這跟傳遞參數的效果蠻似的,使用的時機差別,可以參考最後的類別應用。

 

參考 (傳址呼叫 Call By Reference)

 

傳值+繼承變數+參考

 

在類別的應用

  • $time 是由匿名函數內部傳遞到外部
  • $name 與 $message 由匿名函數外部傳遞到內部

我想這個就是傳遞參數與繼承變數適合的使用場景。

PHP – Swoole – swoole_table 資料存取的用法

swoole_table() 可以在 Swoole 中的任何地方共享資料,使用方法很簡單,以下介紹在 WebSocket 中存取,當然也可以將資料共享在 swoole_http_server()。

建立 Swoole.php

 

先定義表格

接著寫入

 

放入資料

務必在 $table->create(); 之後,自訂一個測試資料的鍵叫做 first,依欄位名稱、型態餵入

  • 因為 data 欄位型態是 swoole_table::TYPE_STRING ,所以數據如果是陣列的話,務必用 json 格式存放

 

取得資料

  • 因為是回呼函式,閉包的情況下,在內部必須呼叫 $GLOBALS[‘table’] 而不是 $table

 

邏輯寫好後啟用服務

在 Command-Line 執行

瀏覽器連接上 WebSocket 以後,就會看到

這個應用,當然就可以用在區分不同群組內的訊息廣播,A群組只有裡面的人才看的到訊息,B群組看不到。