2017-03-18 5 views
1

저는 Ffmpeg를 사용하여 비디오를 레일 앱에 녹화하고 있습니다. 사용자에게 최소 및 최대 시간 제한을 제공하려고합니다. 이 제한을 설정하는 데 사용할 수있는 가장 좋은 플래그는 무엇입니까?Ffmpeg로 시간 제한

답변

1

ffmpeg-t (또는 -to) 옵션을 사용하여 재생 시간을 설정하십시오. 1백20초에 대한 예 :

-t 120 

또는

-t 00:02:00 

FFmpeg Documentation를 참조하십시오.

1

이는 Paperclip이 수행하는 기본 유효성 검사의 범위를 벗어납니다. Paperclip은 유스 케이스의 95 %를 충당 할 수있는 충분한 유효성 검사를 시도하지만, 일반적인 것보다 약간 적은 경우에는 자체 논리를 작성해야합니다. 나는 비디오의 길이를 확인하기 위해 내장 된 맞춤 검증이 있다고 생각하지 않는다. (그러나 자산의 파일 크기의 유효성을 확인하는 데 사용할 수있는 validates_attachment_size 검증 방법이있다. 핀치,이 충분할 수 있습니다.)

당신이 클립 첨부 파일에 대한 몇 가지 더 깊은 검증을 수행 할 경우, 당신이 보일 것입니다 자신 만의 검증 방법을 작성하기위한 몇 가지 도구로 비디오를 다루고 있다면 streamio-ffmpeg을 살펴볼 것입니다.

class YourModel < ActiveRecord::Base 
    has_attached_file :your_media 
    validate :duration_in_range 

    private 

    def duration_in_range 
    # See https://github.com/streamio/streamio-ffmpeg#usage 
    unless FFMPEG::Movie.new(your_media.path).duration.in?(MIN_TIME..MAX_TIME) 
     errors.add(:your_media, "Video duration must be within #{MIN_TIME} and #{MAX_TIME} seconds") 
    end 
    end 
end 
:

이 같은 사용자 정의 검증 뭔가를 쓸 수있는 보석을 사용하여