我第一次直播寫(xiě)代碼是在去年七月份。想要直播一下我在業(yè)余時(shí)間內(nèi)為開(kāi)源項(xiàng)目領(lǐng)域所做的工作,盡管在youtube上的大部分直播都是關(guān)于游戲的。我比較擅長(zhǎng)于NodeJS的硬件庫(kù)方面的工作(盡管大部分項(xiàng)目都是自己的)。并且我在youtube上曾經(jīng)開(kāi)啟過(guò)一個(gè)房間了,那為什么我不繼續(xù)做下去?我的欄目可以叫做:基于Java的硬件開(kāi)發(fā)。
當(dāng)然,我并不是第一個(gè)在直播平臺(tái)直播代碼的,Handmade Hero是我見(jiàn)到的第一個(gè)直播代碼的人。接下來(lái)Vlambeer的工程師們也開(kāi)始了直播代碼,他們?cè)趛outube上直播Nuclear Throne項(xiàng)目的開(kāi)發(fā)。我也特別喜歡Vlambeer工程師們的直播。
真正促使我做這件事情的是我的一個(gè)朋友,他是Nolan Lawson。他曾經(jīng)一周直播一次他在開(kāi)源項(xiàng)目領(lǐng)域所做的工作,真的很酷。在直播過(guò)程中,他解釋了他所寫(xiě)的所有內(nèi)容。他也回復(fù)了Github上的issue,將一些錯(cuò)誤分類,調(diào)試代碼分支。我覺(jué)得他這樣很有意思,因?yàn)镹olan維護(hù)著擁有很高使用頻率的開(kāi)源代碼庫(kù)。我覺(jué)得他的開(kāi)源生活和我很不一樣。
你可以看到我曾經(jīng)在他的視頻下留言:
一周后,我設(shè)置好了youtube房間信息,使用OBS工具,我準(zhǔn)備開(kāi)始直播了。我一直維護(hù)著Avrgirl-Arduino這個(gè)庫(kù),我想我在直播的時(shí)候也做這個(gè)庫(kù)的工作好了。第一次直播是很困難的,那時(shí)我很緊張,前天晚上熬夜還在不斷的排練著直播時(shí)準(zhǔn)備講的內(nèi)容。
那個(gè)周六我的觀眾很少,但大家都在不斷鼓勵(lì)我,所以我堅(jiān)持了下來(lái)。現(xiàn)在我的關(guān)注量已經(jīng)有一千多人了,其中有一些觀眾每次都會(huì)參加,我把他們稱為“noopkat粉”。
在線編程有很多樂(lè)趣可言,我覺(jué)得代碼直播更像是“大型多人在線的結(jié)對(duì)編程”。每個(gè)周末參加直播的觀眾真的很友善并且很聰明,這真的很令我感動(dòng)。記得曾經(jīng)有一次特別搞笑的經(jīng)歷,一個(gè)粉絲指出了電路板和軟件沒(méi)有正常配合工作的原因,竟然是因?yàn)橥浽陔娐钒迳喜逍酒恕?/span>
我已經(jīng)有一段時(shí)間沒(méi)有直播了。現(xiàn)在只是在收到關(guān)于一些功能改善的PR時(shí)才會(huì)進(jìn)行直播,因?yàn)槲艺娴臎](méi)有時(shí)間開(kāi)始了。我可以坦白的說(shuō),我的開(kāi)源項(xiàng)目已經(jīng)變得更好了,真的要感謝youtube社區(qū)的慷慨和鼓勵(lì)。
youtube帶給我的好處其實(shí)還有很多,但也許我會(huì)在另一篇文章中再詳細(xì)的介紹它。相反,我想在這篇文章中分享一些經(jīng)驗(yàn)給那些同樣想做代碼直播的人。因?yàn)樽罱铱偸潜婚_(kāi)發(fā)者問(wèn)到如何才能開(kāi)始做代碼直播,因此我想把當(dāng)時(shí)給他們的建議寫(xiě)出來(lái)。
首先,你應(yīng)該看一下《在youtube上直播并發(fā)現(xiàn)成功的秘訣》這篇文章,它在前期幫助了我不少。盡管它只是關(guān)注在youtube游戲直播,但這篇文章中仍然有一些相關(guān)的內(nèi)容和具體的建議。我建議你在準(zhǔn)備注冊(cè)你的房間(設(shè)備或軟件選型)之前先看一下這篇文章。
下面是我自己的建議。包含了自己在直播代碼的過(guò)程中所犯的錯(cuò)誤以及從同行直播的同伴那里獲得的經(jīng)驗(yàn)(你知道他是誰(shuí)的)。
軟件
網(wǎng)上有很多可以用作直播的軟件可以選擇。我自己使用Open Broadcaster Software(OBS)。它在大多數(shù)平臺(tái)上都是可用的。這款軟件真的很簡(jiǎn)潔并且容易上手,其他的一些軟件就需要我們一定的學(xué)習(xí)成本了。有了這款軟件,你一定會(huì)順暢很多,以下就是今天我電腦上OBS軟件的一個(gè)截圖。
你在直播時(shí)可能會(huì)在不同的場(chǎng)景間進(jìn)行切換。場(chǎng)景是一系列輸入源的集合,不同的層級(jí)之間彼此合成在一起。
輸入源可以是相機(jī),麥克風(fēng),桌面,網(wǎng)頁(yè),實(shí)時(shí)文本,圖片,列表等等。總之,OBS非常強(qiáng)大!
在我直播時(shí)通常都是使用上圖所示的桌面的場(chǎng)景。我使用iTerm和vim,同時(shí)還有一個(gè)方便切換的瀏覽器窗口,以方便的查找文檔以及在GIthub中查找資料。
底部的黑色矩形是我的前置攝像頭,所以大家可以看到是我正在工作,并且建立一種聯(lián)系感。
在我的場(chǎng)景中都有一個(gè)清晰的標(biāo)簽,其中的許多和頂部橫幅的統(tǒng)計(jì)資料和信息有關(guān)。這個(gè)橫幅僅僅是為了添加個(gè)人的信息,也是在直播中持續(xù)的信息源。它是我在GIMP中制作的圖像,并將其作為場(chǎng)景從輸入源中導(dǎo)入。一些標(biāo)簽是從文本文件中獲取到的信息(比如最近的關(guān)注者)。另一個(gè)標(biāo)簽是我自己制作的標(biāo)簽,顯示了我在直播時(shí)現(xiàn)場(chǎng)的溫度和濕度。
我還在場(chǎng)景中設(shè)置了“警報(bào)”場(chǎng)景,當(dāng)有人關(guān)注或者向我捐助時(shí),它會(huì)在直播間的頂部顯示出一個(gè)可愛(ài)的橫幅。我使用了web服務(wù)Stream Labs來(lái)做這件事情,并將其作為瀏覽器網(wǎng)頁(yè)的輸入源導(dǎo)入到場(chǎng)景中。Stream Labs還會(huì)自動(dòng)創(chuàng)建最近關(guān)注我的用戶實(shí)時(shí)文本信息,以在頂部的橫幅中顯示。
我還使用了一個(gè)屏幕背景圖以暗示我就要準(zhǔn)備開(kāi)始直播了。
當(dāng)我在輸入一個(gè)私密的令牌或者API密鑰的時(shí)候,我還需要一個(gè)場(chǎng)景。它可以顯示出我的頭像,但是用一個(gè)有趣的網(wǎng)頁(yè)來(lái)暫時(shí)隱藏我的桌面,所以我也可以保持一定的隱私性。
正如你所看到的,我在直播時(shí)不會(huì)太嚴(yán)肅,但我希望能給觀眾一個(gè)良好的配置,使他們更好地獲取主播主要的內(nèi)容。
暴露一個(gè)秘密:為了保持youtube所規(guī)定的文件大小,我會(huì)使用OBS裁剪屏幕的底部和右邊緣。這樣可以在底部留給我一些空間看到當(dāng)前直播的狀態(tài)(關(guān)注者等等),并且在屏幕右側(cè)回復(fù)聊天框。只要你覺(jué)得有必要,youtube也允許你將聊天室彈出作為一個(gè)新的窗口。
以下就是我桌面的真正的樣子:
我?guī)讉€(gè)月前才開(kāi)始這么做,還沒(méi)有來(lái)的及看大家的反饋。我甚至覺(jué)得觀眾們應(yīng)該不知道我是如何設(shè)置才可以邊直播邊和他們聊天的。我想他們一定以為我看到的一切都是理所當(dāng)然的,但當(dāng)我在緊張的編程過(guò)程中時(shí),我甚至看不到現(xiàn)在正在直播的是什么。
你也許想問(wèn),為什么你不再加一個(gè)顯示器呢?那是因?yàn)閮膳_(tái)顯示器在直播的時(shí)候真的要關(guān)注太多的東西了。我當(dāng)時(shí)很快就想到了這一點(diǎn),所以就一直采用一個(gè)屏幕進(jìn)行直播。
硬件
我剛開(kāi)始直播的時(shí)候,還用很便宜的設(shè)備,直到我后來(lái)迷上直播后才換了好一些設(shè)備。我認(rèn)為只要你愿意用什么設(shè)備都可以開(kāi)始,即使是筆記本上的麥克風(fēng)和話筒也一樣可以進(jìn)行直播。
現(xiàn)在,我用的攝像頭是羅技Pro C920,話筒是Blue Yeti。盡管花了錢但也是很值的,因?yàn)檫@些設(shè)備大大的改善了我直播的質(zhì)量。
我也換了更大型的顯示器(27寸),因?yàn)槲抑耙蔡岬竭^(guò),我并不會(huì)使用兩個(gè)顯示器。那時(shí)的我經(jīng)常沒(méi)有看到大家的聊天記錄,因?yàn)槲也⒉幌矚g直播的時(shí)候看第二塊屏幕,可能你和我有不同的想法,但是我更喜歡在直播的時(shí)候?qū)⑺袞|西都放在一塊兒屏幕上,這樣可以使我更加專心在這個(gè)屏幕上所發(fā)生的事情。
在硬件方面我也是一樣的,并沒(méi)有特別復(fù)雜的設(shè)置。
如果你感興趣的話,可以看看我的桌面,并沒(méi)有什么特別的,除了一個(gè)難聞的話筒。
小建議
在最后一部分,我想介紹一寫(xiě)小的技巧,也正是這些技巧使我的直播變得越來(lái)越有趣了。
房間簡(jiǎn)介
花費(fèi)一些時(shí)間準(zhǔn)備你的房間簡(jiǎn)介,簡(jiǎn)介通常是在個(gè)人頻道底部的內(nèi)容框中。我把這里當(dāng)做另一個(gè)個(gè)人信息頁(yè)面(哈哈,但我真的這么以為的)。簡(jiǎn)介的內(nèi)容可以包括聊天的規(guī)則,直播信息,你所使用的電腦和設(shè)備信息,你最喜歡的貓的品種,任何可以創(chuàng)造出個(gè)人感的東西都可以寫(xiě)在上面。可以看看別人的頻道(特別是很流行的頻道) 獲取一些想法。
這是我的房間簡(jiǎn)介:
聊天
和觀眾聊天真的很重要。當(dāng)人們?cè)谥辈ネ局屑尤氲侥愕闹辈ブ袝r(shí),他們會(huì)一遍一遍的問(wèn)你相同的問(wèn)題,所以如果有一個(gè)“聊天的宏指令”真的很重要。“你在做什么?”是我在直播中被問(wèn)到最多的一個(gè)問(wèn)題。關(guān)于這種問(wèn)題,我有我的聊天的快捷方式,是我用Nightbot實(shí)現(xiàn)的。我會(huì)提前輸入一些問(wèn)題的答案,通過(guò)輸入一些簡(jiǎn)單的命令就可以方便的回答大家的問(wèn)題,比如:”whatamioing”。
當(dāng)觀眾提出問(wèn)題或者或者認(rèn)真留下評(píng)論的時(shí)候,回頭一定要和他們進(jìn)行交談。可以向他們表示感謝,他們一定會(huì)非常感激你的注意和肯定。當(dāng)你剛開(kāi)始直播時(shí),是很難時(shí)刻保持和觀眾互動(dòng)的,但是當(dāng)你做的久了,就會(huì)簡(jiǎn)單一些了。過(guò)幾分鐘就要看一看聊天窗口有沒(méi)有新的聊天記錄以和用戶保持充分的互動(dòng)。
當(dāng)你在編代碼時(shí),一定要解釋你正在做什么。多說(shuō),多開(kāi)玩笑,即使當(dāng)你編程中卡住了。我會(huì)這么說(shuō):“哦,抱歉,我忘記怎么使用這個(gè)方法了,讓我們Google一下,哈哈”。觀眾都是很友好的,他們會(huì)和你一起閱讀代碼,有時(shí)還會(huì)幫助你一起修改。和觀眾一起互動(dòng)是很有趣并且很有吸引力的。
當(dāng)我看別人在進(jìn)行代碼直播時(shí),若他們只是靜靜的編代碼,不看用戶的聊天,也不關(guān)注新進(jìn)觀眾的提醒,對(duì)于這樣的直播,我很快就會(huì)失去興趣了。
若一個(gè)觀眾點(diǎn)進(jìn)了你的房間,99%的是因?yàn)樗麄儗?duì)你的直播很感興趣。我也是偶然間得到了這樣一個(gè)工具,由youtube和Nightbot提供的工具真的可以起到很大的作用。
準(zhǔn)備時(shí)間
盡可能將你的設(shè)置自動(dòng)化。我使用的終端是iTerm,它允許我們保存桌面的排列和字體的大小,以便我們之后進(jìn)行還原。在直播時(shí)我有一套窗口的排列順序,還有一套是為非直播時(shí)準(zhǔn)備的。這樣做可以大大的節(jié)省時(shí)間。只要我敲擊一個(gè)命令,就能在正確的位置顯示正確的大小,一切都是那么自然。
還有一些其他的應(yīng)用程序可以自動(dòng)的幫你正確的放置桌面位置,你可以試一下看看有沒(méi)有幫助。
保證你的終端和代碼編輯器的字體要足夠大,要保證每個(gè)人都能看到你的代碼。
保持規(guī)律
一定要保證日程安排的規(guī)律性。我每周只會(huì)直播一次,但一定是在相同的時(shí)間進(jìn)行直播。一定要讓你的觀眾提前知道你每一次是否都能按時(shí)直播。這樣做會(huì)幫你圈住固定的觀眾。有些人就喜歡有規(guī)律的工作,就像剛好趕上了朋友一樣。這也是屬于你自己的社交圈,所以你也應(yīng)該那樣做。
其實(shí)我也想要更頻繁的進(jìn)行直播,但是由于日程的原因,我不能向大家承諾每周直播多次。我一直想要努力提高自己直播的質(zhì)量,或者也只是隨便的閑聊,也可以省下一下代碼周末進(jìn)行直播,我也正在嘗試著這么做。
棘手的問(wèn)題
剛開(kāi)始時(shí)你會(huì)感覺(jué)很奇怪,別人看你寫(xiě)代碼時(shí)你會(huì)感到很奇怪。這種情況真的很正常!盡管我有過(guò)演講的經(jīng)歷,但在我剛開(kāi)始直播的時(shí)候,還是有很強(qiáng)的這種感覺(jué)。我感覺(jué)我沒(méi)有什么地方可以隱藏我自己,這使我感到很害怕。我會(huì)以為,“每個(gè)人都會(huì)覺(jué)得我的代碼寫(xiě)的很差,我是一個(gè)很差勁的開(kāi)發(fā)者”。這是一種讓我整個(gè)職業(yè)生涯都陷入困境的想法,但這并不新鮮。我知道在直播的時(shí)候,就不能在推送Github之前默默的重構(gòu)代碼了,盡管這對(duì)維護(hù)一個(gè)開(kāi)發(fā)者的名聲非常重要。
通過(guò)在youtube上直播代碼,我也極大的改善了我的編程風(fēng)格,我也認(rèn)識(shí)到自己是這樣的開(kāi)發(fā)者“先使其工作,然后使其可讀,最后使其高效。”我再也不會(huì)再晚上進(jìn)行排練了(我在直播了3~4此就放棄了這個(gè)習(xí)慣),所有我在youtube上寫(xiě)了粗略的代碼,并且我也必須這么做。當(dāng)我一個(gè)人在思考的時(shí)候,我會(huì)寫(xiě)出最好的代碼,不看大家的聊天記錄,不大聲說(shuō)話,這樣也是可以的。在直播中,我也會(huì)忘記使用了上千次的方法簽名,犯一些很“愚蠢”的錯(cuò)誤。因?yàn)閷?duì)大多數(shù)人來(lái)說(shuō),這不是一個(gè)富有成效的環(huán)境。
在youtube我的社區(qū)中,大家從來(lái)沒(méi)有因?yàn)檫@些而批評(píng)我,大家反而會(huì)幫助我。他們明白我是做了多份工作,他們會(huì)提出一些很有效的建議。有時(shí)它們雖然會(huì)向我提供建議,但有時(shí)我也必須要向他們解釋為什么他們的建議不可行。這種體驗(yàn)真的就像結(jié)對(duì)編程一樣。
我認(rèn)為這就是這種做法的強(qiáng)大之處,而不是弱點(diǎn)。它會(huì)使大家更加的有關(guān)聯(lián),更重要的是要表明,沒(méi)有完美的程序員或完美的代碼。對(duì)于新的開(kāi)發(fā)者來(lái)說(shuō),這可能非常令人耳目一新,并且也會(huì)使自己作為一個(gè)更有經(jīng)驗(yàn)的編碼者而謙卑。
總結(jié)
如果你想要在youtube上直播編程,我建議你嘗試一下!如果你想要知道怎樣才能開(kāi)始進(jìn)行直播的話,希望這篇文章能幫助到你。
還想最后在說(shuō)一點(diǎn)就是真的要感謝聰明的Mattias Johansson在我的直播之旅中給予我的鼓勵(lì),他真的很慷慨大方,他的YouTube頻道funfunfunction也是一個(gè)持續(xù)的靈感來(lái)源。
更新:很多觀眾問(wèn)我的鍵盤和我工作臺(tái)上的其他設(shè)備,我把我所用的設(shè)備完整的列出來(lái)了。感謝你們能對(duì)它們感興趣!
如有問(wèn)題請(qǐng)聯(lián)系我們,我們7*24小時(shí)竭誠(chéng)為您服務(wù)