Taiwan Hadoop Forum

台灣 Hadoop 技術討論區
現在的時間是 2022-06-30, 04:07

所有顯示的時間為 UTC + 8 小時




發表新文章 回覆主題  [ 29 篇文章 ]  前往頁數 123  下一頁
發表人 內容
 文章主題 : 云视频点播平台
文章發表於 : 2012-03-26, 11:33 
離線

註冊時間: 2011-08-01, 11:40
文章: 15
毕业设计弄的云视频点播平台,该怎么去设计,曾经在局域网试过把视频文件上传到HDFS上,用谷歌浏览器打开视频文件,发现很卡,利用webdav映射成本地磁盘后也是很卡..那如果客户端点播后直接从HDFS读取视频文件,还是要在服务器端加个本地缓存,把视频文件在本地缓存处理后才让客户端去读取,该怎么去处理HDFS上的文件,视频文件应该是直接用FileSystem存储到HDFS上,还是用SequenceFile去存储,或者有更好的实现方法,忘Jazz大大指点下,谢谢!


回頂端
 個人資料 E-mail  
 
 文章主題 : Re: 云视频点播平台
文章發表於 : 2012-03-27, 07:58 
離線

註冊時間: 2009-11-09, 19:52
文章: 2897
Tuzibuluo 寫:
毕业设计弄的云视频点播平台,该怎么去设计,曾经在局域网试过把视频文件上传到HDFS上,用谷歌浏览器打开视频文件,发现很卡,利用webdav映射成本地磁盘后也是很卡..那如果客户端点播后直接从HDFS读取视频文件,还是要在服务器端加个本地缓存,把视频文件在本地缓存处理后才让客户端去读取,该怎么去处理HDFS上的文件,视频文件应该是直接用FileSystem存储到HDFS上,还是用SequenceFile去存储,或者有更好的实现方法,忘Jazz大大指点下,谢谢!


過去多數都會採用 FUSE 的方式,將 HDFS 掛載成本地端的目錄供 Web Server 使用。
緩衝快取就由 FUSE 跟檔案系統(Linux Kernel VFS)在處理,原本效能就是受質疑的。

近期 Hadoop 1.0.1 已經有 WebHDFS,可以直接做讀取。效能應該會好一些。

- Jazz


回頂端
 個人資料 E-mail  
 
 文章主題 : Re: 云视频点播平台
文章發表於 : 2012-03-27, 10:20 
離線

註冊時間: 2011-08-01, 11:40
文章: 15
jazz 寫:
Tuzibuluo 寫:
毕业设计弄的云视频点播平台,该怎么去设计,曾经在局域网试过把视频文件上传到HDFS上,用谷歌浏览器打开视频文件,发现很卡,利用webdav映射成本地磁盘后也是很卡..那如果客户端点播后直接从HDFS读取视频文件,还是要在服务器端加个本地缓存,把视频文件在本地缓存处理后才让客户端去读取,该怎么去处理HDFS上的文件,视频文件应该是直接用FileSystem存储到HDFS上,还是用SequenceFile去存储,或者有更好的实现方法,忘Jazz大大指点下,谢谢!


過去多數都會採用 FUSE 的方式,將 HDFS 掛載成本地端的目錄供 Web Server 使用。
緩衝快取就由 FUSE 跟檔案系統(Linux Kernel VFS)在處理,原本效能就是受質疑的。

近期 Hadoop 1.0.1 已經有 WebHDFS,可以直接做讀取。效能應該會好一些。

- Jazz


谢谢Jazz大大..fuse我挂载过同样不太给力,我再看看webHDFS,还有个问题,如果我想对视频文件做MapReduce的话视频文件的Value应该设置成什么类型,hadoop里面对应的Writable么,谢谢!


回頂端
 個人資料 E-mail  
 
 文章主題 : Re: 云视频点播平台
文章發表於 : 2012-03-27, 15:26 
離線

註冊時間: 2009-11-09, 19:52
文章: 2897
Tuzibuluo 寫:
谢谢Jazz大大..fuse我挂载过同样不太给力,我再看看webHDFS,还有个问题,如果我想对视频文件做MapReduce的话视频文件的Value应该设置成什么类型,hadoop里面对应的Writable么,谢谢!


目前沒有給 Video 用的 Writable 格式,有需求的話,必須自行實作(implement) Writable 介面(Interface)。
想對 Video 要作甚麽 MapReduce 呢?影像壓縮?影像辨識?
雖然很早以前曾經看過圖片的 InputFormat ,只是 ..... 後來就找不到那篇論文了~
Customizing Input File Formats for Image Processing in Hadoop, Jeff Conner, Arizona State University

- Jazz


回頂端
 個人資料 E-mail  
 
 文章主題 : Re: 云视频点播平台
文章發表於 : 2012-03-28, 10:18 
離線

註冊時間: 2011-08-01, 11:40
文章: 15
jazz 寫:
Tuzibuluo 寫:
谢谢Jazz大大..fuse我挂载过同样不太给力,我再看看webHDFS,还有个问题,如果我想对视频文件做MapReduce的话视频文件的Value应该设置成什么类型,hadoop里面对应的Writable么,谢谢!


目前沒有給 Video 用的 Writable 格式,有需求的話,必須自行實作(implement) Writable 介面(Interface)。
想對 Video 要作甚麽 MapReduce 呢?影像壓縮?影像辨識?
雖然很早以前曾經看過圖片的 InputFormat ,只是 ..... 後來就找不到那篇論文了~
Customizing Input File Formats for Image Processing in Hadoop, Jeff Conner, Arizona State University

- Jazz


找到你说的那篇论文了,有空好好看下,没做那么高级的应用啦,单纯想做视频点播,但是不知道如何入手,以前是挂载fuse挂载到一个web服务器上,也用webdav的网页访问过视频文件,虽然是局域网但是效果还是不怎么样,还是说我需要实现去一帧一帧的去读取,我有看了这篇http://forum.hadoop.tw/viewtopic.php?f=7&t=35270帖子,大概也是这样了,但是后面看到内地的一篇论文《分布式系统hadoop平台的视频转码》,论文谈到说利用FFMPEG先对未上传的文件进行分割,然后再上传到HDFS上,在HDFS上进心MapReduce,Map端再利用FFMPEG对视频进行转码,在利用一个Reducer端对各个转码后的分片视频进行合并,昨天安装好FFMPEG后就有很大疑问了,FFMPEG是用C写的,一般的视频分割转码都是在终端用ffmpeg命令进行的,再未上传到HDFS上,我可以利用java,调用终端上的命令去分割,等到上传至HDFS了,各个视频文件进行MapReduce程序,对于Map端,如果利用FFMPEG来实现转码,也可以在java程序中调用ffmpeg进行转码吗?这是我的疑问之一,因为没有对应的jar文件,怕FFMPEG命令识别不了HDFS的文件路径,还有一个疑问是既然做MapReduce程序中用到FFMPEG来进行转码,其中的Value值是各个分片视频文件的HDFS路径,还是自定义的Writable类,这是我的疑问之二;我的第三个疑问是在一个Reducer端上对Map端各个视频转码输出做合并,调用的仍然是FFMPEG来支持,还是hadoop本身可以把HDFS上的有序列文件进行合并;问题很多,哈哈,望指导..谢谢!


回頂端
 個人資料 E-mail  
 
 文章主題 : Re: 云视频点播平台
文章發表於 : 2012-03-28, 10:28 
離線

註冊時間: 2009-11-09, 19:52
文章: 2897
Tuzibuluo 寫:
找到你说的那篇论文了,有空好好看下,没做那么高级的应用啦,单纯想做视频点播,但是不知道如何入手,以前是挂载fuse挂载到一个web服务器上,也用webdav的网页访问过视频文件,虽然是局域网但是效果还是不怎么样,还是说我需要实现去一帧一帧的去读取,我有看了这篇http://forum.hadoop.tw/viewtopic.php?f=7&t=35270帖子,大概也是这样了,但是后面看到内地的一篇论文《分布式系统hadoop平台的视频转码》,论文谈到说利用FFMPEG先对未上传的文件进行分割,然后再上传到HDFS上,在HDFS上进心MapReduce,Map端再利用FFMPEG对视频进行转码,在利用一个Reducer端对各个转码后的分片视频进行合并,昨天安装好FFMPEG后就有很大疑问了,FFMPEG是用C写的,一般的视频分割转码都是在终端用ffmpeg命令进行的,再未上传到HDFS上,我可以利用java,调用终端上的命令去分割,等到上传至HDFS了,各个视频文件进行MapReduce程序,对于Map端,如果利用FFMPEG来实现转码,也可以在java程序中调用ffmpeg进行转码吗?这是我的疑问之一,因为没有对应的jar文件,怕FFMPEG命令识别不了HDFS的文件路径,还有一个疑问是既然做MapReduce程序中用到FFMPEG来进行转码,其中的Value值是各个分片视频文件的HDFS路径,还是自定义的Writable类,这是我的疑问之二;我的第三个疑问是在一个Reducer端上对Map端各个视频转码输出做合并,调用的仍然是FFMPEG来支持,还是hadoop本身可以把HDFS上的有序列文件进行合并;问题很多,哈哈,望指导..谢谢!


要讓 Hadoop 去執行 FFMPEG,最簡單的方式就是透過 Hadoop Streaming 的方式去呼叫。我有設計一個範例,只要把裡面用的指令換成 ffmpeg ,整個流程看得懂的話,就能理解該怎麼做了。否則光是要自行定義 Writable 類別、用 JMF(Java Media Framework)去取代 FFMPEG 硬塞進 MapReduce 過程,只會把自己搞死。

http://trac.nchc.org.tw/cloud/wiki/III120211/Lab10

- Jazz


回頂端
 個人資料 E-mail  
 
 文章主題 : Re: 云视频点播平台
文章發表於 : 2012-03-28, 13:52 
離線

註冊時間: 2011-08-01, 11:40
文章: 15
jazz 寫:
Tuzibuluo 寫:
找到你说的那篇论文了,有空好好看下,没做那么高级的应用啦,单纯想做视频点播,但是不知道如何入手,以前是挂载fuse挂载到一个web服务器上,也用webdav的网页访问过视频文件,虽然是局域网但是效果还是不怎么样,还是说我需要实现去一帧一帧的去读取,我有看了这篇http://forum.hadoop.tw/viewtopic.php?f=7&t=35270帖子,大概也是这样了,但是后面看到内地的一篇论文《分布式系统hadoop平台的视频转码》,论文谈到说利用FFMPEG先对未上传的文件进行分割,然后再上传到HDFS上,在HDFS上进心MapReduce,Map端再利用FFMPEG对视频进行转码,在利用一个Reducer端对各个转码后的分片视频进行合并,昨天安装好FFMPEG后就有很大疑问了,FFMPEG是用C写的,一般的视频分割转码都是在终端用ffmpeg命令进行的,再未上传到HDFS上,我可以利用java,调用终端上的命令去分割,等到上传至HDFS了,各个视频文件进行MapReduce程序,对于Map端,如果利用FFMPEG来实现转码,也可以在java程序中调用ffmpeg进行转码吗?这是我的疑问之一,因为没有对应的jar文件,怕FFMPEG命令识别不了HDFS的文件路径,还有一个疑问是既然做MapReduce程序中用到FFMPEG来进行转码,其中的Value值是各个分片视频文件的HDFS路径,还是自定义的Writable类,这是我的疑问之二;我的第三个疑问是在一个Reducer端上对Map端各个视频转码输出做合并,调用的仍然是FFMPEG来支持,还是hadoop本身可以把HDFS上的有序列文件进行合并;问题很多,哈哈,望指导..谢谢!


要讓 Hadoop 去執行 FFMPEG,最簡單的方式就是透過 Hadoop Streaming 的方式去呼叫。我有設計一個範例,只要把裡面用的指令換成 ffmpeg ,整個流程看得懂的話,就能理解該怎麼做了。否則光是要自行定義 Writable 類別、用 JMF(Java Media Framework)去取代 FFMPEG 硬塞進 MapReduce 過程,只會把自己搞死。

http://trac.nchc.org.tw/cloud/wiki/III120211/Lab10

- Jazz


谢谢Jazz大大,顿然间醒悟啊..哈哈..好吧,又重新来过了..谢谢!


回頂端
 個人資料 E-mail  
 
 文章主題 : Re: 云视频点播平台
文章發表於 : 2012-04-02, 00:18 
離線

註冊時間: 2011-08-01, 11:40
文章: 15
Tuzibuluo 寫:
jazz 寫:
Tuzibuluo 寫:
找到你说的那篇论文了,有空好好看下,没做那么高级的应用啦,单纯想做视频点播,但是不知道如何入手,以前是挂载fuse挂载到一个web服务器上,也用webdav的网页访问过视频文件,虽然是局域网但是效果还是不怎么样,还是说我需要实现去一帧一帧的去读取,我有看了这篇http://forum.hadoop.tw/viewtopic.php?f=7&t=35270帖子,大概也是这样了,但是后面看到内地的一篇论文《分布式系统hadoop平台的视频转码》,论文谈到说利用FFMPEG先对未上传的文件进行分割,然后再上传到HDFS上,在HDFS上进心MapReduce,Map端再利用FFMPEG对视频进行转码,在利用一个Reducer端对各个转码后的分片视频进行合并,昨天安装好FFMPEG后就有很大疑问了,FFMPEG是用C写的,一般的视频分割转码都是在终端用ffmpeg命令进行的,再未上传到HDFS上,我可以利用java,调用终端上的命令去分割,等到上传至HDFS了,各个视频文件进行MapReduce程序,对于Map端,如果利用FFMPEG来实现转码,也可以在java程序中调用ffmpeg进行转码吗?这是我的疑问之一,因为没有对应的jar文件,怕FFMPEG命令识别不了HDFS的文件路径,还有一个疑问是既然做MapReduce程序中用到FFMPEG来进行转码,其中的Value值是各个分片视频文件的HDFS路径,还是自定义的Writable类,这是我的疑问之二;我的第三个疑问是在一个Reducer端上对Map端各个视频转码输出做合并,调用的仍然是FFMPEG来支持,还是hadoop本身可以把HDFS上的有序列文件进行合并;问题很多,哈哈,望指导..谢谢!


要讓 Hadoop 去執行 FFMPEG,最簡單的方式就是透過 Hadoop Streaming 的方式去呼叫。我有設計一個範例,只要把裡面用的指令換成 ffmpeg ,整個流程看得懂的話,就能理解該怎麼做了。否則光是要自行定義 Writable 類別、用 JMF(Java Media Framework)去取代 FFMPEG 硬塞進 MapReduce 過程,只會把自己搞死。

http://trac.nchc.org.tw/cloud/wiki/III120211/Lab10

- Jazz


谢谢Jazz大大,顿然间醒悟啊..哈哈..好吧,又重新来过了..谢谢!



Jazz 大大,看了你给我的教程和wiki上的hadoop Stream那块,在你的mapper.sh 里 hadoop fs -get $input /tmp/$id/$filename 是把这个文件从HDFS文件系统get到本地再 运行的velveth命令(类似于ffmpeg)来处理文件,再将处理后的数据利用hadoop fs -put output-$filename /user/$id/.上传到HDFS这样子么,Linux的脚本的我不懂,我找到了个JAVE项目,封装的ffmpeg-java API,另外我利用fuse挂载了HDFS,我想在我的Map函数里面去处理转码,但是我不知道MapReduce的这个框架,怎么让每个视频分段对应一个Map,我应该是提供一个输入目录里面对应多个分段视频,这样子是不是每个视频就会产生一个Map了,呵呵,我自己有点晕了..


回頂端
 個人資料 E-mail  
 
 文章主題 : Re: 云视频点播平台
文章發表於 : 2012-04-02, 08:40 
離線

註冊時間: 2009-11-09, 19:52
文章: 2897
Tuzibuluo 寫:
Jazz 大大,看了你给我的教程和wiki上的hadoop Stream那块,在你的mapper.sh 里 hadoop fs -get $input /tmp/$id/$filename 是把这个文件从HDFS文件系统get到本地再 运行的velveth命令(类似于ffmpeg)来处理文件,再将处理后的数据利用hadoop fs -put output-$filename /user/$id/.上传到HDFS这样子么,Linux的脚本的我不懂,我找到了个JAVE项目,封装的ffmpeg-java API,另外我利用fuse挂载了HDFS,我想在我的Map函数里面去处理转码,但是我不知道MapReduce的这个框架,怎么让每个视频分段对应一个Map,我应该是提供一个输入目录里面对应多个分段视频,这样子是不是每个视频就会产生一个Map了,呵呵,我自己有点晕了..


我寫的範例是用五個檔案,每個均內含 20 個待處理的輸入檔案 HDFS 路徑,因此根據 MapReduce 的原理,會得到五個 Mapper。
以影像壓縮、影像合併為例,則可以將欲處理的視頻影片 HDFS 路徑,依照所希望分散給幾台 Mapper ,將檔名路徑寫到不同的輸入文字檔案。
如此就可以對他們做處理。

Ex.

我有 100 個視頻影片,檔名分別為 001.avi 、002.avi 、.... 、100.avi
我有 5 台 TaskTracker 可以執行 MapReduce。

[1] 首先我將 001.avi 到 100.avi 上傳到 HDFS 的 /user/jazz/input_video

[2] 我產生五個檔案,檔名分別為 input_1.txt、input_2.txt、....、input_5.txt

input_1.txt 內容為
代碼:
/user/jazz/input_video/001.avi
/user/jazz/input_video/002.avi
........... 略 ...............
/user/jazz/input_video/020.avi

input_2.txt 內容為 021.avi 到 040.avi 的路徑,依此類推。

[3] 將 input_1.txt ~ input_5.txt 上傳至 HDFS 的 /user/jazz/input

[4] 撰寫轉檔的 Script = mapper.sh 裡面去下載 HDFS 的檔案到 Local,然後做轉檔動作,然後再度上傳至 HDFS

[5] 撰寫合併的 Script = reducer.sh 從 HDFS 取回轉檔的中間產物,呼叫合併動作,然後再度上傳至 HDFS

[6] 呼叫 Hadoop Streaming

代碼:
hadoop jar hadoop-streaming.jar -input input -output output -mapper mapper.sh -reducer reducer.sh


- Jazz


回頂端
 個人資料 E-mail  
 
 文章主題 : Re: 云视频点播平台
文章發表於 : 2012-04-07, 13:54 
離線

註冊時間: 2011-08-01, 11:40
文章: 15
jazz 寫:
Tuzibuluo 寫:
Jazz 大大,看了你给我的教程和wiki上的hadoop Stream那块,在你的mapper.sh 里 hadoop fs -get $input /tmp/$id/$filename 是把这个文件从HDFS文件系统get到本地再 运行的velveth命令(类似于ffmpeg)来处理文件,再将处理后的数据利用hadoop fs -put output-$filename /user/$id/.上传到HDFS这样子么,Linux的脚本的我不懂,我找到了个JAVE项目,封装的ffmpeg-java API,另外我利用fuse挂载了HDFS,我想在我的Map函数里面去处理转码,但是我不知道MapReduce的这个框架,怎么让每个视频分段对应一个Map,我应该是提供一个输入目录里面对应多个分段视频,这样子是不是每个视频就会产生一个Map了,呵呵,我自己有点晕了..


我寫的範例是用五個檔案,每個均內含 20 個待處理的輸入檔案 HDFS 路徑,因此根據 MapReduce 的原理,會得到五個 Mapper。
以影像壓縮、影像合併為例,則可以將欲處理的視頻影片 HDFS 路徑,依照所希望分散給幾台 Mapper ,將檔名路徑寫到不同的輸入文字檔案。
如此就可以對他們做處理。

Ex.

我有 100 個視頻影片,檔名分別為 001.avi 、002.avi 、.... 、100.avi
我有 5 台 TaskTracker 可以執行 MapReduce。

[1] 首先我將 001.avi 到 100.avi 上傳到 HDFS 的 /user/jazz/input_video

[2] 我產生五個檔案,檔名分別為 input_1.txt、input_2.txt、....、input_5.txt

input_1.txt 內容為
代碼:
/user/jazz/input_video/001.avi
/user/jazz/input_video/002.avi
........... 略 ...............
/user/jazz/input_video/020.avi

input_2.txt 內容為 021.avi 到 040.avi 的路徑,依此類推。

[3] 將 input_1.txt ~ input_5.txt 上傳至 HDFS 的 /user/jazz/input

[4] 撰寫轉檔的 Script = mapper.sh 裡面去下載 HDFS 的檔案到 Local,然後做轉檔動作,然後再度上傳至 HDFS

[5] 撰寫合併的 Script = reducer.sh 從 HDFS 取回轉檔的中間產物,呼叫合併動作,然後再度上傳至 HDFS

[6] 呼叫 Hadoop Streaming

代碼:
hadoop jar hadoop-streaming.jar -input input -output output -mapper mapper.sh -reducer reducer.sh


- Jazz


jazz大大,按照你给我的提示,程序差不多完成了,但是转化出来的FLV文件我想利用yamdi加入关键帧,Linux不太熟,利用FFMPEG和yamid对FLV 视频文件进行处理,linux两个命令怎么用管道串行执行,例如:我的第一个命令是 ffmpeg -i(输入) /home/tuzibuluo/source.flv -f flv -y -o(输出文件的路径) 第二个命令是 yamid -i(输入) (要用到第一个命令的输出文件路径-o 的值) -o(第二个命令yamid输出文件的路径) /home/tuzibuluo/target.flv 怎么把第一命令的输出-o作为第二个命令的 -i 的值,这个命令该怎么写,IO重定向还是管道,完整的命令是?谢谢!


回頂端
 個人資料 E-mail  
 
顯示文章 :  排序  
發表新文章 回覆主題  [ 29 篇文章 ]  前往頁數 123  下一頁

所有顯示的時間為 UTC + 8 小時


誰在線上

正在瀏覽這個版面的使用者:沒有註冊會員 和 1 位訪客


不能 在這個版面發表主題
不能 在這個版面回覆主題
不能 在這個版面編輯您的文章
不能 在這個版面刪除您的文章
不能 在這個版面上傳附加檔案

搜尋:
前往 :  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
正體中文語系由 竹貓星球 維護製作