Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Open
ranjithnalimela opened this issue Jul 17, 2013 · 23 comments
Open

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

ranjithnalimela opened this issue Jul 17, 2013 · 23 comments

Comments

@ranjithnalimela
Copy link

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
Copy link
Contributor

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

@rilian
Copy link
Contributor

rilian commented Jul 17, 2013

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

@ttseng
Copy link

ttseng commented Oct 22, 2013

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
Copy link
Contributor

I’ll try to, thank you.

2013/10/23 ttseng [email protected]

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//issues/6#issuecomment-26861570
.

Yours truly, Pavel.

@ttseng
Copy link

ttseng commented Oct 28, 2013

were you able to resolve the issue?

@argent-smith
Copy link
Contributor

Not yet. This week perhaps...

2013/10/28 ttseng [email protected]

were you able to resolve the issue?


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

Yours truly, Pavel.

@hyperrjas
Copy link

+1

@ttseng
Copy link

ttseng commented Nov 17, 2013

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
Copy link
Contributor

Thanks. I’ll probably use some of it.

2013/11/18 ttseng [email protected]

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//issues/6#issuecomment-28664696
.

Yours truly, Pavel.

@rakesh050791
Copy link

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
Copy link
Contributor

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

@rakesh050791
Copy link

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
Copy link
Contributor

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
Copy link

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
Copy link
Contributor

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

@rakesh050791
Copy link

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
Copy link
Contributor

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
Copy link

00dav00 commented Jul 8, 2019

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
Copy link
Contributor

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

@damujay
Copy link

damujay commented Jul 6, 2020

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
Copy link

gregblass commented Sep 10, 2020

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
Copy link
Contributor

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

@araslanov-e
Copy link

Helped me #15 (comment)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

10 participants