分布式视频转码系统的设计与完成(五)--DVTS遇到了的大问题一

在进行下一步的工作的时候,我使用了GitHub上头的此项目,通过初步阅读该项目的源码,大致了解到了其工作流程:

输入的四个参数

待转码的视频文件所在本地位置    /opt/DVTS/input/ 

转码后的视频文件存放本地位置   /opt/DVTS/output

转码过程中读入的转码参数         /opt/DVTS/Parameters.xml

转码任务的用户名                       hadoop

然后整个项目的执行流程:

1: 在master本地文件系统中读入输入视频所在的文件夹  如:/opt/DVTS/input/  然后我们在这个路径下放我们需要转码的视频即可

2: master上运行TranscodeClient程序,读入我们的转码参数文件/opt/DVTS/Parameters.xml

3:然后调用master节点上的mkvmerge工具对待转码视频按照指定参数进行分割

4:分割完成之后,需要将产生的索引文件和分片文件分别,利用hadoop命令分别穿上啊hdfs文件系统上,准备让hadoop集群进行分布式计算。下图为分割完成后的:

5:client程序再调用hadoop jar命令  将TranscoderMR这个MapReduce程序的已经打包好的jar包调用来转码

输入为/hadoop/Transcoding_192.168.217.134_0.mp4/index 

输出为/hadoop/Transcoding_192.168.217.134_0.mp4/trans

第五步的过程就涉及到了整个TranscoderMR的代码流程,又是一个可以分为很多小步骤讲的过程。这里后面可能会进一步分析分析。

6:若上一步执行成功后,下一步则是将转码后的分片下载到本地进行合并工作。

 

但是我现在心态差不多快爆炸了,因为我们的项目运行之后出现了的确实这样的结果:

TaskID=0: hadoop fs -rm -r /hadoop/Transcoding_192.168.217.134_0.mp4: Success
TaskID=0: hadoop fs -mkdir -p /hadoop/Transcoding_192.168.217.134_0.mp4/split: Success
TaskID=0: hadoop fs -mkdir -p /hadoop/Transcoding_192.168.217.134_0.mp4/index: Success
TaskID=0: mkvmerge -o /opt/DVTS/output.temp/splits/Transcoding_192.168.217.134_0.mp4.split%04d.mp4 --split 70m /opt/DVTS/input/Transcoding_192.168.217.134_0.mp4: Success
TaskID=0: hadoop fs -copyFromLocal -f /opt/DVTS/output.temp/splits/Transcoding_192.168.217.134_0.mp4.split0001.mp4 /hadoop/Transcoding_192.168.217.134_0.mp4/split: Success
TaskID=0: hadoop fs -copyFromLocal -f /opt/DVTS/output.temp/splits/Transcoding_192.168.217.134_0.mp4.split0002.mp4 /hadoop/Transcoding_192.168.217.134_0.mp4/split: Success
TaskID=0: hadoop jar /usr/hadoop/TranscoderMr.jar  /hadoop/Transcoding_192.168.217.134_0.mp4/index /hadoop/Transcoding_192.168.217.134_0.mp4/trans: Success
TaskID=0: hadoop fs -copyToLocal /hadoop/Transcoding_192.168.217.134_0.mp4/trans/Transcoding_192.168.217.134_0.mp4.split0001.mp4.ts /opt/DVTS/output.temp/transc/: Fail
TaskID=0: hadoop fs -rm -r /hadoop/Transcoding_192.168.217.134_0.mp4: Success
test.mp4 transcode fails!

问题: 

提示MapReduce的项目jar包调用成功,然后从hdfs上下载转码后的分片的时候出现错误!

可是经过排查发现可能是MapReduce阶段出现了问题,因为在/hadoop/Transcoding_192.168.217.134_0.mp4/trans这个文件下根本没有出现我们后面程序执行时需要的分片文件!!!

应为对MapReduce编程不太了解,所以现在非常的头疼,不知道这部分是代码问题还是什么其他问题。

2018年8月6日15:49:58  

上述问题(在这个问题描述中有关于index文件内容样例的展示)已经解决,在这边blog里头也做出解释了。同时在更前面的一篇安装ffmpeg的文章中记录下出现的小问题。

 


 

猜你喜欢

转载自blog.csdn.net/qq_28619473/article/details/81302980