Hi,
簡單說明一下技術問題, windows media server 其實有三種 protocol: rtsp, mmst, mmsh. 其中後兩種都已經 deprecated. 現在 windows media player 使用的就是 rtsp
msdl 透過 mmsh 下載是原本就會動的,但
ivod.ly 的 mmsh port 不時會關掉,所以沒辦法用。
ivod.ly 主要的問題是他使用了 server-side playlist, 先播放一個版權宣告的靜態畫面後,才用 server-announce 開始真的 stream. 而目前 open source 的 rtsp/mmst client implementation 幾乎都沒有支援這個 server-announce 的功能 (ffmpeg/libav, openrtsp, rtspdump) - 除了 msdl 的 rtsp.
總之最後修掉的 bug 是 msdl 在 server-announce 的第二個 stream 的 packet length 和前一個(靜態畫面)的不同, 而 msdl 沒處理到這個,因此在寫入檔案時做了錯誤的 padding, 造成出來的 wmv 檔損毀。
接下來這部份可以做的:
1) 把 rtsp fix port 到 libavformat 裡面
這樣所有用 ffmpeg/libav 的 project - 不管是 browser plugin 或 mobile player 都可以直接看
ivod.ly.
2) 重新提供 webm & mp4 版本,讓人可以直接用 #ts=30:00,31:00 這樣的方式連結/分享「影片的第 30 分鐘至 31 分鐘」
* 也可以提供 datetime timestamp 的方式 redirect, 如 2013-03-08 10:30:00 - 由影片第一個 frame 上面的 timestamp OCR 算出 offset
(ffmpeg -loglevel 0 -i /path/to/file -vframes 1 -f image2 - | djpeg -pnm -gray | gocr -C 0-9:- -|tail -1|sed -e 's/_/-/g'
3) 目前
ivod.ly 上面的「委員片段」更新其實蠻快的,大約是 live stream 的兩小時以後。meta data 有包含 time code, 所以可以顯示在整天會議的 timeline 上, 這樣可以直接看出是否有遺漏,並且補完。
4) 其他影像、聲音處理的應用
* opencv 偵測人臉 - 標記畫面上無人的片段 (可以直接濾掉休息時間等)
* 禮貌偵測器:偵測打對對話、同時講話的片段, highlight time code
5) 公報語句對應 time code
6) live stream rebroadcast to ustream/justintv, 讓非 windows 平台也可以觀看 (應該已經可以了,下週二可以試試看)
7) live stream 時,讓人可以進行 text report 的機制
有時間的話,我會先進行 2 & 3 的部份。想幫忙的話請直接在這或 #
g0v.tw irc 上討論。