clementfarabet / lua---ffmpeg

An interface between ffmpeg and Lua/Torch
21 stars 17 forks source link

Error in ffmpeg #11

Closed karandwivedi42 closed 8 years ago

karandwivedi42 commented 8 years ago

FFMPEG bindings for Lua don't work. I have reproduced the error below.

ffmpeg works through command line. But not through Lua.

th> require 'ffmpeg'
{
  Video : {...}
}
                                                                      [0.0162s]
th> ffmpeg.Video()
WARNIN  
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Video

loads a video into a table of tensors:
 + relies on ffpmeg, which must be installed
 + creates a local scratch/ to store temp frames on disk

> usage:
Video{
    [path = string]                     -- path to video
    [width = number]                    -- width  [default = 320]
    [height = number]                   -- height  [default = 240]
    [zoom = number]                     -- zoom factor  [default = 1]
    [fps = number]                      -- frames per second  [default = 10]
    [length = number]                   -- length, in seconds  [default = 10]
    [seek = number]                     -- seek to pos. in seconds  [default = 0]
    [channel = number]                  -- video channel  [default = 0]
    [load = boolean]                    -- loads frames after conversion  [default = true]
    [delete = boolean]                  -- clears (rm) frames after load  [default = true]
    [encoding = string]                 -- format of dumped frames  [default = png]
    [tensor = torch.Tensor]             -- provide a packed tensor (NxCxHxW or NxHxW), that bypasses path
    [destFolder = string]               -- destination folder  [default = scratch]
    [silent = boolean]                  -- suppress output  [default = false]
}

Video{width=number, path=string}
Video(string, ...)
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
/home/utkarsha/torch/install/share/lua/5.1/xlua/init.lua:320: error
stack traceback:
    [C]: in function 'error'
    /home/utkarsha/torch/install/share/lua/5.1/xlua/init.lua:320: in function 'error'
    /home/utkarsha/torch/install/share/lua/5.1/xlua/init.lua:543: in function 'unpack'
    /home/utkarsha/torch/install/share/lua/5.1/xlua/init.lua:603: in function 'unpack_class'
    /home/utkarsha/torch/install/share/lua/5.1/ffmpeg/init.lua:64: in function '__init'
    /home/utkarsha/torch/install/share/lua/5.1/torch/init.lua:91: in function </home/utkarsha/torch/install/share/lua/5.1/torch/init.lua:87>
    [C]: in function 'Video'
    [string "_RESULT={ffmpeg.Video()}"]:1: in main chunk
    [C]: in function 'xpcall'
    /home/utkarsha/torch/install/share/lua/5.1/trepl/init.lua:650: in function 'repl'
    ...rsha/torch/install/lib/luarocks/rocks/trepl/scm-1/bin/th:199: in main chunk
    [C]: at 0x00406670  
InnovArul commented 8 years ago

same issue here. Any help is appreciated!

karandwivedi42 commented 8 years ago

Hey

Just checked it again.

torch/install/share/lua/5.1/xlua/init.lua:543 suggests that empty arguments are not supported, in both ffmpeg.Video() and video:play() .

Instead, try

require 'ffmpeg'
vid = ffmpeg.Video('path/to/video.mpg')
vid:play{loop=false,zoom=1}

This should work.

Run using qlua not th. Also, the playVideo() in usage is actually play(). (attaching usage here)

> usage:
video:playVideo{
    [zoom = number]                     -- zoom  [default = 1]
    [loop = boolean]                    -- loop  [default = false]
    [fps = number]                      -- fps [default = given by seq.fps]
    [channel = number]                  -- video channel  [default = 1]
}

video:playVideo{loop=boolean, zoom=number}
video:playVideo(number, ...)