twitch.tv 實況台

twitch.tv 實況台:顯示|不顯示

ustream.tv 實況台

Twitch 實況台

Ustream 實況台

2011年10月30日 星期日

[實況] 用 ffmpeg 在 Linux 底下實況

Windows 底下有很多實況用的工具
不過 Linux 下面的實況就不見得比較差
不過雖然說不會比較差,但是卻麻煩很多很多^n
下面用 ubuntu 11.04 作範例
(理論上其他版本可行,可以自己玩玩看)

首先安裝好你的 ubuntu 11.04
這是最重要的
然後接下來的作業方式
都是在終端機下面打指令 =w="

接著打開你的終端機
輸入以下指令:
sudo apt-get install ffmpeg libavcodec-extra-53
libavcodec-extra-53 的 53 可能會是其他的數字
像是 ubuntu 11.04 下就是 52
可以自已用 tab 鍵或是套件管理程式查一下

其實到這裡可以用圖形化的套件管理程式安裝啦
不過因為習慣問題所以還是用終端機……

前面如果有其他的相依套件需要安裝的
記得不要取消掉,一併安裝

安裝好了以後
就可以直接實況了 =w=;;
說起來很簡單
不過對很多人來說
用終端機打指令就是很討厭啊(逃命)

再來就是要將串流丟到 justin.tv 上面了
首先拿指令出來……
ffmpeg -f x11grab -s 1280*720 -r 60 -i :0.0 -f alsa -ac 2 -i hw:0,0 -vol 4096 -vcodec libx264 -vpre fast -s 640x360 -acodec libmp3lame -ab 128k -ar 22050 -threads 0 -f flv "rtmp://live.justin.tv/app/live_xxxxxxxx_xxxxxxxx"
落落長一串

解釋一下指令
就是
擷取桌面的訊號,範圍 1280*720 解析度,從 (0,0) 開始擷取
音效裝置是 alsa 硬體位置 0 的地方
影像編碼是 x264,重新壓縮成 640*360 大小
音效編碼是 mp3,重新編碼 128k/22050Hz
rtmp:// 後面那一串就是 justin 的伺服器位置了
請自行找出來 wwwwwwwwwwwwwwwwwwwww

基本上感覺跟沒有說一樣

這個指令最重要的用途
就是擷取自己的 Linux 桌面直接實況啦
其中 -f x11grab 就是擷取畫面的指令
當然不只有擷取畫面
如果你有電視卡、擷取卡、網路攝影機等等的影像設備
只要可以擷取到串流
就可以利用 ffmpeg 直接丟到 justin.tv 上面了

以上都沒有圖形化介面,很累 =A=" ……

附帶一提
ubuntu 下面的 libavcodec-extra-53
如果想要用 libfaac 將音效編碼為 aac 格式再上傳的話
ffmpeg 會回報錯誤,因為這包裡面沒有 aac 的編碼
想要用 aac 的話,要自己找別的套件庫來裝
所以這邊的指令,就只會用 mp3 作範例
想要用的話就找 medibuntu 的套件庫吧 wwww

目前已實驗過的 dist :
ubuntu 11.04
ubuntu 11.10
Linux Mint 11

3 則留言:

  1. 不過用硬體繪圖的東西(例:某些使用 3D 繪圖遊戲)好像不一定擷取的下來的樣子0w0
    樓主有試過嗎?

    回覆刪除
    回覆
    1. 這就沒有試過了,那時候沒有特別去找 Linux 下的 3D 遊戲
      那時候還沒有 Steam for Linux 0w0;;;

      刪除
  2. V字龍也許可以試試看OBS?
    http://obsproject.com/
    他也是GPL的~

    回覆刪除