2014-02-11 34 views
0

我有3個版本的視頻。如果主要質量失敗,則顯示可用的視頻質量

問題:

我需要顯示視頻的可用質量,如果主要質量不工作或無法啓動。它是如何做到的?

version :high_mp4 do 
    process encode_video: [:mp4, encode_params("720x720", HIGH_PARAMS).merge(version: Video::HIGH_VERSION) ] 
    def full_filename(for_file=file) 
    super.chomp(File.extname(super)) + '.mp4' 
    end 
end 

version :medium_mp4 do 
    process encode_video: [:mp4, encode_params("480x480", MEDIUM_PARAMS).merge(version: Video::MEDIUM_VERSION)] 
    def full_filename(for_file=file) 
    super.chomp(File.extname(super)) + '.mp4' 
    end 
end 

version :low_mp4 do 
    process encode_video: [:mp4, encode_params("320x320", LOW_PARAMS).merge(version: Video::LOW_VERSION)] 
    def full_filename(for_file=file) 
    super.chomp(File.extname(super)) + '.mp4' 
    end 
end 

觀點:

= video.file.medium_mp4.url 

回答

0

我不知道關於中等質量的視頻,但我知道,像SublimeVideo視頻包裝具有data-quality屬性,可以讓兩個不同的版本之間切換。

如果你有自己的包裝,你可以使用類似的東西來測試帶寬,然後觸發適當的源。

http://docs.sublimevideo.net/hd-switching

<video class="sublime" width="640" height="360" title="Midnight Sun" preload="none"> 
    <source src="https://cdn.sublimevideo.net/vpa/ms_360p.mp4" /> 
    <source src="https://cdn.sublimevideo.net/vpa/ms_720p.mp4" data-quality="hd" /> 
    <source src="https://cdn.sublimevideo.net/vpa/ms_360p.webm" /> 
    <source src="https://cdn.sublimevideo.net/vpa/ms_720p.webm" data-quality="hd" /> 
</video> 

如果你擔心不被提供的視頻,當你包括源代碼,你可以檢查,看看是否該文件存在。

<video class="sublime" width="640" height="360" title="Midnight Sun" preload="none"> 
    <% if File.exist?(@video.file(:low_mp4)) %> 
    <source src="https://cdn.sublimevideo.net/vpa/ms_360p.mp4" /> 
    <% end %> 
    <% if File.exist?(@video.file(:high_mp4)) %> 
    <source src="https://cdn.sublimevideo.net/vpa/ms_720p.mp4" data-quality="hd" /> 
    <% end %> 
    <source src="https://cdn.sublimevideo.net/vpa/ms_360p.webm" /> 
    <source src="https://cdn.sublimevideo.net/vpa/ms_720p.webm" data-quality="hd" /> 
</video>