詳細流程如下:
先執行以下指令啟動 VLC stream server,將目標檔案或裝置轉換成 H.264 + AAC 串流,並建立 sdp 介面。
$ vlc filename -vvv input_stream --sout='#duplicate{dst="transcode{venc=x264,vcodec=h264,vb=800,acodec=mp4a,ab=128,channels=2,samplerate=44100}:rtp{dst=127.0.0.1,port=1234,sdp=file:///path/to/vlc_sdp_file.sdp}"}'
你可以修改 vb 的值改變影像輸出的 bitrate,subq則會影響影像品質。啟動 server 以後我們就可以執行 jtvlc 將串流上傳至 Justin.tv。
$ jtvlc your_account stream_key vlc_sdp_file.sdp
其中 stream_key 是一個 live_ 開頭的字串,你可以先登入 Justin.tv 並且點選這個連結。如果網頁上沒有 stream key 字串,請打開檢視網頁原始碼視窗搜尋 stream_key,應該可以在 javascript tag裡找到它。
底下是我以前用來實況 PSP 遊戲畫面的 VLC 命令
vlc -vvv v4l2:///dev/video0 --input-slave=alsa://plughw:0,0 --sout='#duplicate{dst=display,dst="transcode{vfilter=croppadd{cropleft=121,cropright=121,croptop=102,cropbottom=104},venc=x264,vcodec=h264,vb=800,acodec=mp4a,ab=128,channels=2,samplerate=44100}:rtp{dst=127.0.0.1,port=1234,sdp=file://~/vlc.sdp}"}'
如果使用 input-slave 接 ALSA 裝置的話,請記得檢查 VLC 的音效輸出模組是否設定為 ALSA。
瑞元您好
回覆刪除您的文章對小弟有很大的幫助
可否跟您請教, 您有試過將桌面screen
轉播到 justin.tv 嗎?
可否像您請教相關方式呢?
您好
回覆刪除轉播桌面 screen 是可以的,實況的檔案就是 window://[根視窗ID] ,ID 可以用 xwininfo 點一下桌面來查詢。