我尝试使用.jpg图片和ffmpeg创建视频片段,正在创建.jpg图片,如下所示:
$str=$_REQUEST['data_array'];//gets the base64 encoded image data;
$count =$_REQUEST['count'];//gets number of images i've to create;
$edited_str=substr($str,23,strlen($str)-1);//
$edited_str=base64_decode($edited_str);
$f=fopen("Images/temp".$count.".jpg","w");//am creating temp.jpg file
fwrite($f,$edited_str);//placing my decoded data into file
fclose($f);
上面创建的图像与普通的.jpg图像有什么不同?
答案 0 :(得分:0)
这一行:
$edited_str=substr($str,23,strlen($str)-1);
使它与众不同。如果这是文件的完整base64 sting,那么这会削减它并破坏它。也许你正在前面添加一些东西。
如果您只是从正面添加的东西,那么它应该与使用base64编码的原始文件相同。
如果你想从另一个页面以这种方式获取信息,我建议使用$ _POST而不是$ _REQUEST,原因有很多。
编辑:我不会说php中的视频操作是不可能的。我认为甚至还有一个工具包......这是一个:http://phpvideotoolkit.sourceforge.net/
指出:
它可以执行视频格式转换,将视频帧提取到单独的图像文件中,并从一组单独的视频图像中组合视频流。
没有测试过,但计划有一天尝试一下。
EDIT2:在php网站上,你可以尝试一些问题,但为了提供更多帮助,需要提供更多信息。直接检查文件,确保正确发送和解密。
我还没有测试过这些。
有一条建议是使用大文件:
$decodedstring=base64_decode(chunk_split($encodedstring));
另一个是如果你使用javascript canvas.toDataURL()然后你需要将空格转换回来:
$encodedData = str_replace(' ','+',$encodedData);
$decocedData = base64_decode($encodedData);