저는 Ffmpeg를 사용하여 비디오를 레일 앱에 녹화하고 있습니다. 사용자에게 최소 및 최대 시간 제한을 제공하려고합니다. 이 제한을 설정하는 데 사용할 수있는 가장 좋은 플래그는 무엇입니까?Ffmpeg로 시간 제한
1
A
답변
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
:
이 같은 사용자 정의 검증 뭔가를 쓸 수있는 보석을 사용하여