On the client side, the user uses RecordRTC to record a short video. When the user presses upload, I will get the video\'s blob data using recorder.getBlo
In the end, the cause of problem is that the blob file returned from recorder.getBlob() is not an actual blob. Refer to the answer from muaz-khan.
I added the following lines in RecordRTC to get the real blob and do the same AJAX submitted. Everything work now.
getBlob: function () {
return blobURL2;
},
+ getRealBlob: function() {
+ return blobURL;
+ },
I handled kind of same problem in one of my project. The situation was the API has to convert a blob data to image file that was being sent by a mobile device. I am assuming the action to be upload in your controller file.
def upload
#extract the video data from params
video = params[:video]
# define the save path for the video. I am using public directory for the moment.
save_path = Rails.root.join("public/videos/#{video.original_filename}")
# Open and write the file to file system.
File.open(save_path, 'wb') do |f|
f.write params[:video].read
end
render :nothing => true
end