evrone / carrierwave-video-thumbnailer

A thumbnailer plugin for Carrierwave that makes easy thumbnailing of your uploaded videos
https://evrone.com
MIT License
95 stars 45 forks source link

Change thumbnail Content type video/mp4 to image/png #6

Open ranjithnalimela opened 11 years ago

ranjithnalimela commented 11 years ago

HI,

When i upload a mp4 video, video and video thumbnail both content types are storing as video/mp4. how can i set vide content type to video/mp4 and thumbnail content type image/png.

Uploder.rb:

version :thumb do
    process thumbnail: [{format: 'png', quality: 10, size: 260, workaround: true, strip: true, logger: Rails.logger}]

    def full_filename for_file
      png_name for_file, version_name
    end
end

def png_name for_file, version_name
    %Q{#{version_name}_#{for_file.chomp(File.extname(for_file))}.png}
end
argent-smith commented 11 years ago

Thanx for the question. I’ll try to help you asap.

rilian commented 11 years ago

Please check if the official doc help on this https://github.com/carrierwaveuploader/carrierwave#setting-the-content-type

ttseng commented 11 years ago

I have the same problem. My image files have a content-type of video/quicktime on amazon s3. I've added

require 'carrierwave/processing/mime_types' include CarrierWave::MimeTypes

and

process :set_content_type

but it did not fix the problem. Did anyone figure out how to solve it?

argent-smith commented 11 years ago

I’ll try to, thank you.

2013/10/23 ttseng notifications@github.com

I have the same problem. My image files have a content-type of video/quicktime on amazon s3. I've added

require 'carrierwave/processing/mime_types' include CarrierWave::MimeTypes

and

process :set_content_type

but it did not fix the problem. Did anyone figure out how to solve it?

— Reply to this email directly or view it on GitHubhttps://github.com/evrone/carrierwave-video-thumbnailer/issues/6#issuecomment-26861570 .

Yours truly, Pavel.

ttseng commented 11 years ago

were you able to resolve the issue?

argent-smith commented 11 years ago

Not yet. This week perhaps...

2013/10/28 ttseng notifications@github.com

were you able to resolve the issue?

— Reply to this email directly or view it on GitHubhttps://github.com/evrone/carrierwave-video-thumbnailer/issues/6#issuecomment-27187993 .

Yours truly, Pavel.

hyperrjas commented 11 years ago

+1

ttseng commented 10 years ago

I solved this issue by overriding the process set_content_type as follows:

require 'carrierwave/processing/mime_types'

class VideoPathUploader < CarrierWave::Uploader::Base include CarrierWave::Video include CarrierWave::Video::Thumbnailer include CarrierWave::MimeTypes

version :thumb do process thumbnail: [{format: 'png', quality: 10, size: 158, logger: Rails.logger}] def full_filename for_file png_name for_file, version_name end process :set_content_type_png

process resize_to_limit: [105, 158]

end

def set_content_type_png(*args) Rails.logger.debug "#{file.content_type}" self.file.instance_variable_set(:@content_type, "image/png") end

end

I had to do this for all file types (I was using the carrierwave-video gem to convert video file types, so I had to define processes for each file type I created). It's a bit hacky, but it worked for me.

argent-smith commented 10 years ago

Thanks. I’ll probably use some of it.

2013/11/18 ttseng notifications@github.com

I solved this issue by overriding the process set_content_type as follows:

require 'carrierwave/processing/mime_types'

class VideoPathUploader < CarrierWave::Uploader::Base include CarrierWave::Video include CarrierWave::Video::Thumbnailer include CarrierWave::MimeTypes

version :thumb do process thumbnail: [{format: 'png', quality: 10, size: 158, logger: Rails.logger}]

def full_filename for_file png_name for_file, version_name end process :set_content_type_png

process resize_to_limit: [105, 158]

end

def set_content_type_png(*args) Rails.logger.debug "#{file.content_type}" self.file.instance_variable_set(:@content_type, "video/png") end

end

I had to do this for all file types (I was using the carrierwave-video gem to convert video file types, so I had to define processes for each file type I created). It's a bit hacky, but it worked for me.

— Reply to this email directly or view it on GitHubhttps://github.com/evrone/carrierwave-video-thumbnailer/issues/6#issuecomment-28664696 .

Yours truly, Pavel.

rakesh050791 commented 10 years ago

I am still facing the same issue. After using the above code I am getting the below error:

NoMethodError (undefined method `each' for "image/png":String):

Any help would be appreciated.

Thanks Rakesh

argent-smith commented 10 years ago

@ttseng would you please help clarifying @rakesh050791 ’s Q? I hope I’ll fix it in the library asap.

rakesh050791 commented 10 years ago

Hello smith,

As we need the thumbnail for the video uploaded in our rails application. we are using this library for the same, but we are unable to reach at our goal.

we are using carrierwave for video uploading. but by using the code mentioned in the library for thumbnail, we are not getting the exact thumbnail for the same video.

I am attaching my video uploader screen , please see.

video_uploader

Quick reply would be appreciated.

argent-smith commented 10 years ago

we are not getting the exact thumbnail for the same video

Do you mean you see a thumbnail of a different video or what?

rakesh050791 commented 10 years ago

I mean to say, i am getting the response like this

response

Please see, the url i'am getting for the video uploaded, the same url i am getting in the thumb, but this is not to be done Pavel .

Please ignore the above thumb : "" parameter, this one is my database column. made later

argent-smith commented 10 years ago

Does your version of ffmpeg/ffmpegthumbnailer support the format you use (3gp)?

rakesh050791 commented 10 years ago

I have tried with mp 4 also and i've installed ffmpegthumbnailer today itself.

Could you please update me how can i check this ?

argent-smith commented 10 years ago

Just be sure it supports all the needed formats. Also, it’d be a great help if you try CLI-run of ffmpegthumbnailer on the sample file of the offending format and show me the CLI output. Thanks in advance!

00dav00 commented 5 years ago

Just run into the same issue and @ttseng fix worked for me, are you planning to fix this anytime soon or accepting PRs for this?

argent-smith commented 5 years ago

@rakesh050791 @00dav00 thnx for the report ❤️ . Will decide ASAP.

damujay commented 4 years ago

HI argent-smith , Actually i am facing with video thumbnail issue.

my issue) when i uploading a video , the thumbnail image is stretching.FOr youtube videos ,it's fine but if it's system videos,the thumbnails is stretching. I am using carrier wave gaem.Following is the my code base.

` include CarrierWave::Video # for your video processing include CarrierWave::Video::Thumbnailer

version :medium, if: :image? do process :remove_animation, if: :gif? process :resize_to_limit => [500, 500] end

version :thumb, if: :video? do process thumbnail: [{format: 'png', quality: 10, size: "500%", seek: "00:00:03", logger: Rails.logger}] def full_filename for_file png_name for_file, version_name end

def png_name for_file, version_name
  %Q{#{version_name}_#{for_file.chomp(File.extname(for_file))}.png}
end

end `

CAn you please suggest me on this?

Thank you un advance

gregblass commented 4 years ago

The Mime Types feature was removed from carrierwave. As of now it seems impossible to set the mime type correctly using this gem, resulting in thumbnails not displaying from on iOS.

EDIT: False alarm! You don't need to include the mime type carrierwave stuff. Just set the content type in a :process method. I just wasn't actually sending it to S3 in dev!

argent-smith commented 4 years ago

Thnx for notice. I'll see what could be done with this.

araslanov-e commented 3 years ago

Helped me https://github.com/evrone/carrierwave-video-thumbnailer/issues/15#issuecomment-60081856