1. 程式人生 > >使用FFmpeg轉錄網路直播流

使用FFmpeg轉錄網路直播流

愛奇藝萬能播放器的最新版本增加了一個播放網路流的功能。不過,入口藏在播放器區域的右鍵選單裡,不太好找:


找來一個直播流URL,比如東森新聞 http://60.199.188.151/HLS/WG_ETTV-N/index.m3u8,試了一下,還不賴呢!

有時候,看到精彩的直播內容,想把某些片段儲存到本地。無奈播放器不提供這樣的功能。那麼,開個小窗給FFmpeg吧,它可以搞定!

命令列如下:

ffmpeg -i http://60.199.188.151/HLS/WG_ETTV-N/index.m3u8 d:\cap.mp4

這條命令會持續不斷地抓取網路視訊流,然後寫入d:\cap.mp4檔案,直到你按下鍵盤上的“Q”鍵才停止。如果你就想錄制一小段時間(比如60秒),可以在-i引數前加-t引數來控制,如下:

ffmpeg -t 60 -i http://60.199.188.151/HLS/WG_ETTV-N/index.m3u8 d:\cap.mp4

上面例子中的直播流是HTTP協議的。FFmpeg還支援其他什麼協議嗎?這也簡單!在控制檯輸入ffmpeg -protocols便一目瞭然了。

不禁又一次暗暗佩服:FFmpeg Holy-High!得意

Ps. 有位同學提醒道,應該加上-c:v copy -c:a copy(另一種表達方式是-vcodec copy -acodec copy)來避免轉碼。吾深以為然!這對於實時採集的場景尤為重要!經測試,效果喜人,FFmpeg的CPU佔用從之前的80%降到了1%!!!

完整命令列如下:

ffmpeg -i http://60.199.188.151/HLS/WG_ETTV-N/index.m3u8 -c:v copy -c:a copy -bsf:a aac_adtstoasc d:\cap.mp4