<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>
<title><![CDATA[向东博客 专注WEB应用 构架之美 --- 构架之美，在于尽态极妍 | 应用之美，在于药到病除]]></title> 
<link>http://www.jackxiang.com/index.php</link> 
<description><![CDATA[赢在IT，Playin' with IT,Focus on Killer Application,Marketing Meets Technology.]]></description> 
<language>zh-cn</language> 
<copyright><![CDATA[向东博客 专注WEB应用 构架之美 --- 构架之美，在于尽态极妍 | 应用之美，在于药到病除]]></copyright>
<item>
<link>http://www.jackxiang.com/post//</link>
<title><![CDATA[[工作揭密]视频网站实在是太火了，而其用到的技术也一直是处于半公开状态，本人在这个行业，也就写点东西出来，推波助澜]]></title> 
<author>jack &lt;xdy108@126.com&gt;</author>
<category><![CDATA[WEB2.0]]></category>
<pubDate>Fri, 06 Apr 2007 03:06:58 +0000</pubDate> 
<guid>http://www.jackxiang.com/post//</guid> 
<description>
<![CDATA[ 
	时下视频网站实在是太火了，而其用到的技术也一直是处于半公开状态，我在大概3个月前，开始接触这个技术，当时的资料并不多，在经过一个多星期的研究之后，终于大功告成！<br/><br/>起初，看到一些视频网站，觉得挺新奇的，能够把上传的视频文件转成FLV格式，而且还会有几张截图出来，当时在想，是不是网站专门请了一批人处理这些上传的文件，然后把图截出来，现在想想这念头确实挺幼稚的。<br/><br/>其实说白了，也挺简单的，就是通过php的执行函数，比如exec，然后调用服务器的转换程序，转换结束后将文件生成到指定的文件夹，更新数据库记录，并转到相应的页面。<br/><br/>因为要上传比较大的文件，所以要先设置最大上传文件的大小，打开php.ini，找到upload_max_filesize，这一行，将值改为50M或更大。<br/><br/>至于转换程序的选择，我最初是用ffmpeg的，但是发现转换经常失败，不得不放弃，后来发现另一款非常棒的转换软件，mencoder，也是linux下的，但我的环境是windows，所以找到了一个绿色的以mencoder为核心的应用软件wisMencoder，里面有mencoder，如果是从网上下的话，应该有三个相应的mencoder，分别是对应不同的处理器的。<br/><br/>如果要生成截图，可以通过ffmpeg来生成。<br/><br/>下面是核心代码：<br/> 程序代码<br/><br/>exec ("$cgi_url $source_url -o $dest_url -of lavf -oac mp3lame -lameopts abr:br=56 -ovc lavc -lavcopts vcodec=flv:vbitrate=500:mbd=2:mv0:trell:v4mv:cbp:last_pred=3:dia=4:cmp=6:vb_strategy=1 -vf scale=320:240,expand=320:240:::1,crop=320:240:0:0 -ofps 30 -srate 22050 -lavfopts i_certify_that_my_video_stream_does_not_use_b_frames",$arr,$sta);<br/>if($sta!=0)&#123;<br/> &nbsp; &nbsp;die ("转换出错！");<br/>&#125;<br/>//优化生成的flv<br/>exec("flvmdi.exe $dest_url");<br/>$imgW="160";<br/>$imgY="120";<br/>exec("ffmpeg.exe -i $dest_url -ss 10 -vframes 1 -r 1 -ac 1 -ab 2 -s $imgW*$imgY -f image2 $pic_url");<br/>echo "文件转换完毕";<br/>if(filesize($pic_url)=="0")&#123;<br/> &nbsp; &nbsp;echo "文件转换出错";<br/>&#125;<br/><br/>这里解释一下，上面的$cgi_url，指的是要调用的转换程序的url，$source_url指的是上传的文件的url，$dest_url，是生成的flv的存放路径，后面的参数比较复杂，就不具体解释了，网上应该有相应的文章，最后的$sta，是判断是否转换成功<br/>调用flvmdi.exe是因为mencoder生成的flv不能拖放，用这个程序来修复一下<br/>最后调用ffmpeg来生成截图<br/>当然转换生成结束后还要更新一下数据库记录<br/><br/>顺便提一句，由于上传的文件可能比较大，所以最好将php的执行时间相应延长，比如延长到300秒<br/>set_time_limit(300);<br/><br/>至此视频网站的最核心技术就完全捅破了，如果还有什么问题，欢迎和我交流。
]]>
</description>
</item><item>
<link>http://www.jackxiang.com/post//#blogcomment</link>
<title><![CDATA[[评论] [工作揭密]视频网站实在是太火了，而其用到的技术也一直是处于半公开状态，本人在这个行业，也就写点东西出来，推波助澜]]></title> 
<author> &lt;user@domain.com&gt;</author>
<category><![CDATA[评论]]></category>
<pubDate>Thu, 01 Jan 1970 00:00:00 +0000</pubDate> 
<guid>http://www.jackxiang.com/post//#blogcomment</guid> 
<description>
<![CDATA[ 
	
]]>
</description>
</item>
</channel>
</rss>