“多媒體”首次體驗之播放
小程覺得,找一個切入點,在某個專業領域完成某個功能,然後在恰當的時候再做系統的概念的理解,這種辦法,才是一個好的學習辦法。最重要的一點,這是一個有趣的過程。但如果讀者只是想了解概念,那就不必實際操作了。
多媒體的知識與技能繁多,入門容易而深入較難。小程在這個版塊做一個對應自己水平的分享,希望可以幫到一些剛起步的人,歡迎關註微信公眾號“廣州小程”以獲得後續的更新。
“媒體”,就是聲音、圖像、文字這些元素,多個元素合在一起就叫“多媒體”,當這些元素以流協議傳輸時就叫“流媒體”。
在數字世界,聽到的,看到的東西,都是多媒體,而提到多媒體,最容易想到的功能就是播放。
那小程就從“播放”功能入手,先把這個功能實現,盡量少管概念上的事情。
FFmpeg,這個程序集,在多媒體的技能中經常使用到,這裏就使用這個程序集來實現播放功能。
本文介紹如何用FFmpeg來實現播放。
FFmpeg程序集裏面,有一個程序叫ffplay(播放器),它提供了播放的功能。
(1)ffplay的安裝
小程使用的是mac電腦。
安裝ffplay的辦法很簡單:
brew install ffmpeg --with-sdl2 --with-rtmpdump
安裝成功之後,就可以把ffplay運行一下,以命令行的方式來運行:
因為小程在系統上安裝了一個ffplay,然後用FFmpeg的源碼又編譯了一個ffplay,所以有兩個不同的版本。
(2)播放
在安裝了ffplay播放器的情況下,播放就是舉手之勞的事。
比如:
ffplay "http://ivi.bupt.edu.cn/hls/cctv1hd.m3u8"
ffplay ~/Desktop/1.mp4
ffplay可以播放網絡上的音視頻文件,也可以播放本地的文件。
所以,只要有路徑(或url),那可以用ffplay來播放。
那除了本地的資源,還能找到一些有趣的url來播放嗎?
感興趣的讀者,可以閱讀下面這部分內容,它介紹了怎麽獲取播放的url。
一般可以在網上搜索,或者把地址抓出來。
比如在pc網頁上進到“酷狗直播”,打開一個直播間,然後用Charles抓包,可以看到這樣的地址:
換一個直播間(這個是點播的):
再比如,虎牙的一個直播的地址是這樣的:
或者,在網上搜索一些可用的地址,比如(會過期的,發稿時可用):
香港衛視:rtmp://live.hkstv.hk.lxdns.com/live/hks
CCTV1高清:http://ivi.bupt.edu.cn/hls/cctv1hd.m3u8
CCTV3高清:http://ivi.bupt.edu.cn/hls/cctv3hd.m3u8
CCTV5高清:http://ivi.bupt.edu.cn/hls/cctv5hd.m3u8
CCTV5+高清:http://ivi.bupt.edu.cn/hls/cctv5phd.m3u8
CCTV6高清:http://ivi.bupt.edu.cn/hls/cctv6hd.m3u8
再看一下用ffplay播放時的效果:
ffplay "rtmp://live.hkstv.hk.lxdns.com/live/hks"
電視臺:
直播間:
在用ffplay播放時,有一些快捷鍵可以使用,比如:
q --退出
p/空格 --暫停
w --切換封面、波形與能量圖
f --全屏
s --逐幀顯示
左右方向、上下方向 --向後或向前快進
總結一下,文章介紹FFmpeg中的ffplay的使用,愉快地完成了播放的功能,基本沒有涉及到復雜的概念。操作的難度系數為1,比如讀者有macos的環境的話。
“多媒體”首次體驗之播放