Ruby: как прочитать файл mp4 на куски - PullRequest
0 голосов
/ 29 ноября 2018

Я хочу иметь возможность читать файл mp4 кусками по 1 Мб.

Я пытался открыть файл с помощью следующих API:

video_file = File.open(@video_filename, 'rb') 
video_file = IO.binread(@video_filename)

Проблема в том, что video_file - это строка, и я не могу использовать read для получения фрагментов файла.

chunk = video_file.read(4*1024*1024)

Какой интерфейс / инструменты использовать в Ruby для открытия этого файла и чтения его по N байтов за раз?

Ответы [ 2 ]

0 голосов
/ 29 ноября 2018

Полагаю, я бы сделал:

chnk_size=4*1024*1024
f=File.open(fn, 'rb')
until f.eof?    
    chnk=f.read(chnk_size)
    # process the chnk
end 
0 голосов
/ 29 ноября 2018

Попробуйте что-то вроде этого:

   `FILENAME = "d:\\tmp\\file.bin"
    MEGABYTE = 1024 * 1024

 class File
  def each_chunk(chunk_size = MEGABYTE)
  yield read(chunk_size) until eof?
 end
end

 open(FILENAME, "rb") do |f|
  f.each_chunk { |chunk| puts chunk }
   end`
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...