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