Recherche avancée

Médias (91)

Autres articles (77)

  • Organiser par catégorie

    17 mai 2013, par

    Dans MédiaSPIP, une rubrique a 2 noms : catégorie et rubrique.
    Les différents documents stockés dans MédiaSPIP peuvent être rangés dans différentes catégories. On peut créer une catégorie en cliquant sur "publier une catégorie" dans le menu publier en haut à droite ( après authentification ). Une catégorie peut être rangée dans une autre catégorie aussi ce qui fait qu’on peut construire une arborescence de catégories.
    Lors de la publication prochaine d’un document, la nouvelle catégorie créée sera proposée (...)

  • Récupération d’informations sur le site maître à l’installation d’une instance

    26 novembre 2010, par

    Utilité
    Sur le site principal, une instance de mutualisation est définie par plusieurs choses : Les données dans la table spip_mutus ; Son logo ; Son auteur principal (id_admin dans la table spip_mutus correspondant à un id_auteur de la table spip_auteurs)qui sera le seul à pouvoir créer définitivement l’instance de mutualisation ;
    Il peut donc être tout à fait judicieux de vouloir récupérer certaines de ces informations afin de compléter l’installation d’une instance pour, par exemple : récupérer le (...)

  • ANNEXE : Les plugins utilisés spécifiquement pour la ferme

    5 mars 2010, par

    Le site central/maître de la ferme a besoin d’utiliser plusieurs plugins supplémentaires vis à vis des canaux pour son bon fonctionnement. le plugin Gestion de la mutualisation ; le plugin inscription3 pour gérer les inscriptions et les demandes de création d’instance de mutualisation dès l’inscription des utilisateurs ; le plugin verifier qui fournit une API de vérification des champs (utilisé par inscription3) ; le plugin champs extras v2 nécessité par inscription3 (...)

Sur d’autres sites (6336)

  • How do I get videos to upload using ruby on rails carrierwave-video ?

    9 juillet 2016, par Eric

    Updated as of July 9, 2016

    I tried to follow the instructions on the github website for the video uploader process using carrierwave-video gem but get an error that says the file or directory mmpeg -i doesn’t exist.

    The upload path for images functions correctly, just not the video one.

    I have added all of the following code necessary to help solve the error and minified as much as i possibly could.

    Video uploader code using carrierwave

    class VideoUploader < CarrierWave::Uploader::Base

     include CarrierWave::Video
     storage :file

     version :mp4 do
       process :encode_video => [:mp4, resolution: "100x100"]
     end

     def store_dir
       "uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}"
     end
    end

    Here is the movie controller code that handles uploading of videos

    class MoviesController &lt; ApplicationController
      include MoviesHelper

      def index
         mode "index"
      end

      def show
         mode "show"
      end

      def new
         mode "new"
      end

      def edit
         mode "edit"
      end

      def create
         mode "create"
      end

      def update
         mode "update"
      end

      def destroy
         mode "destroy"
      end

      def review
         mode "review"
      end

      def approve
         mode "approve"
      end

      def deny
         mode "deny"
      end
    end

    Here is the model data for the movie that goes with it

    class Movie &lt; ActiveRecord::Base
     attr_accessible :created_on, :description, :maintenance, :reviewed, :subplaylist_id, :title, :user_id, :video, :remote_video_url
     belongs_to :user
     belongs_to :subplaylist
     mount_uploader :video, VideoUploader
    end

    Here is where the movie is supposed to be displayed but it is not working

    &lt;% provide(:title, "Movie: Where movies are made!") %>
    &lt;% provide(:keywords, "movies, video") %>
    &lt;% provide(:description, "This is the place where users showcase their wonderful video talent.") %>
    <p>&lt;%= notice %></p>
    <h1 class="pageheader">&lt;%= @movie.title %></h1>
    <br />
    <p class="pagetext">&lt;%= video_tag(@movie.video_url.to_s, controls: true, class: "imagebox") %></p>
    <p class="pagetext">&lt;%= @movie.description %></p>
    <p class="pagetext">Created on: &lt;%= @movie.created_on.strftime("%B-%d-%Y") %></p>
    <p class="pagetext">Owner: &lt;%= getType(@movie.user) %>&lt;%= link_to @movie.user.vname, user_path(@movie.user) %></p>
    <br />
    <p class="pagetext">&lt;%= link_to 'Back', mainplaylist_subplaylist_path(@subplaylist.mainplaylist, @movie.subplaylist) %></p>

    Here is where the movie new action is

    &lt;% provide(:title, "Movie: Create new movies here!") %>
    &lt;% provide(:description, "New movies are uploaded only to the site when the movie gets approved.") %>
    <h1 class="pagetextheader">New movie</h1>
    &lt;%= render 'form' %>
    <p class="pagetext">&lt;%= link_to 'Back', mainplaylist_subplaylist_path(@subplaylist.mainplaylist, @subplaylist) %></p>

    Here is where the movies forum parameters are

    &lt;%= form_for([@subplaylist, @movie], :html=>{:multipart => true}) do |f| %>
     &lt;% if @movie.errors.any? %>
       <div>
         <h2>&lt;%= pluralize(@movie.errors.count, "error") %> prohibited this movie from being saved:</h2>

         <ul>
         &lt;% @movie.errors.full_messages.each do |msg| %>
           <li>&lt;%= msg %></li>
         &lt;% end %>
         </ul>
       </div>
     &lt;% end %>
     <br />
     <div class="pagetext">
       &lt;%= f.label :title %><br />
       &lt;%= f.text_field :title %>
     </div>
     <div class="pagetext">
       &lt;%= f.file_field :video %>
     </div>
     <div class="pagetext">
       &lt;%= f.label :remote_video_url, "or video URL" %><br />
       &lt;%= f.text_field :remote_video_url %>
     </div>
     <div class="pagetext">
       &lt;%= f.label :description %><br />
       &lt;%= f.text_area :description %>
     </div>
     <div class="pagetext">
       &lt;%= f.submit %>
     </div>
     <br />
    &lt;% end %>

    Here is the movies helper code

    module MoviesHelper

      def mode(type)
         code = auto_logout
         if(code == true)
            sign_out
            redirect_to root_path
         else
            #Check if Maintenance is turned_on
            allmode = Maintenancemode.find_by_id(1)
            moviemode = Maintenancemode.find_by_id(19)
            mode_turned_on = (allmode.maintenance_on || moviemode.maintenance_on)
            #Determine if any maintenance is on
            if(mode_turned_on)
               #Determine if we are a regular user
               regularUser = (!current_user || !current_user.admin?)
               if(regularUser)
                  #Determine which maintenance mode is on
                  if(allmode.maintenance_on)
                     redirect_to maintenance_path
                  else
                     redirect_to movies_maintenance_path
                  end
               else
                  switch type
               end
            else
               switch type
            end
         end
      end

      private
         def getType(user)
            if(user.admin)
               value = "$"
            else
               typeFound = Usertype.find_by_user_id(user.id)
               if(typeFound)
                  type = typeFound.privilege
                  if(type == "Reviewer")
                     value = "^"
                  elsif(type == "Banned")
                     value = "!"
                  else
                     value = "~"
                  end
               else
                  value = "~"
               end
            end
            return value
         end

         def movieApproved
            movieFound = Movie.find_by_id(params[:movie_id])
            if(movieFound)
               movieFound.reviewed = true
               pouch = Pouch.find_by_user_id(movieFound.user_id)
               pointsForMovie = 10
               pouch.amount += pointsForMovie
               @pouch = pouch
               @pouch.save
               @movie = movieFound
               @movie.save
    #            MovieMailer.movie_approved(@movie, pointsForMovie).deliver
               redirect_to movies_review_path
            else
               render "public/404"
            end
         end

         def movieDenied
            movieFound = Movie.find_by_id(params[:movie_id])
            if(movieFound)
               #Retrieve the user who owns this pet first
               #userEmail = petFound.user.email
               #Send mail to user with link to edit the pet they sent
               @movie = movieFound
               MovieMailer.movie_denied(@movie).deliver
               redirect_to movies_review_path
            else
               render "public/404"
            end
         end

         def createMovie(subplaylistFound)
            newMovie = subplaylistFound.movies.new
            @subplaylist = subplaylistFound
            @movie = newMovie
         end

         def saveMovie(subplaylistFound, logged_in)
            newMovie = subplaylistFound.movies.new(params[:movie])
            newMovie.user_id = logged_in.id
            currentTime = Time.now
            newMovie.created_on = currentTime
            @movie = newMovie
            if(@movie.save)
               @subplaylist = subplaylistFound
    #            MovieMailer.review_movie(@movie).deliver
               flash[:success] = "#{@movie.title} is currently being reviewed please check back later."
               redirect_to subplaylist_movie_path(@subplaylist, @movie)
            else
               render "new"
            end
         end

         def switch(type)
            if(type == "index") #Admin only
               logged_in = current_user
               if(logged_in)
                  if(logged_in.admin)
                     allMovies = Movies.order("created_on desc").page(params[:page]).per(10)
                     @movies = allMovies
                  else
                     redirect_to root_path
                  end
               else
                  redirect_to root_path
               end
            elsif(type == "show")
               movieFound = Movie.find_by_id(params[:id])
               if(movieFound)
                  subplaylistFound = Subplaylist.find_by_id(params[:subplaylist_id])
                  if(subplaylistFound)
                     if(movieFound.reviewed)
                        @subplaylist = subplaylistFound
                        @movie = movieFound
                     else
                        logged_in = current_user
                        if(logged_in)
                           userMatch = ((logged_in.id == movieFound.user_id) || logged_in.admin)
                           if(userMatch)
                              @subplaylist = subplaylistFound
                              @movie = movieFound
                           else
                              redirect_to root_path
                           end
                        else
                           redirect_to root_path
                        end
                     end
                  else
                     redirect_to root_path
                  end
               else
                  render "public/404"
               end
            elsif(type == "new")
               logged_in = current_user
               if(logged_in)
                  subplaylistFound = Subplaylist.find_by_id(params[:subplaylist_id])
                  if(subplaylistFound)
                     if(subplaylistFound.collab_mode)
                        createMovie(subplaylistFound)
                     else
                        userMatch = (logged_in.id == subplaylistFound.user_id)
                        if(userMatch)
                           createMovie(subplaylistFound)
                        else
                           redirect_to root_path
                        end
                     end
                  else
                     render "public/404"
                  end
               else
                  redirect_to root_path
               end
            elsif(type == "create")
               logged_in = current_user
               if(logged_in)
                  subplaylistFound = Subplaylist.find_by_id(params[:subplaylist_id])
                  if(subplaylistFound)
                     if(subplaylistFound.collab_mode)
                        saveMovie(subplaylistFound, logged_in)
                     else
                        userMatch = (logged_in.id == subplaylistFound.user_id)
                        if(userMatch)
                           saveMovie(subplaylistFound, logged_in)
                        else
                           redirect_to root_path
                        end
                     end
                  else
                     render "public/404"
                  end
               else
                  redirect_to root_path
               end
            elsif(type == "edit")
               logged_in = current_user
               if(logged_in)
                  movieFound = Movie.find_by_id(params[:id])
                  if(movieFound)
                     userMatch = (logged_in.id == movieFound.user_id)
                     if(userMatch)
                        subplaylistFound = Subplaylist.find_by_id(movieFound.subplaylist_id)
                        if(subplaylistFound)
                           @subplaylist = subplaylistFound
                           @movie = movieFound
                        else
                           render "public/404"
                        end
                     else
                        redirect_to root_path
                     end
                  else
                     render "public/404"
                  end
               else
                  redirect_to root_path
               end
            elsif(type == "update")
               logged_in = current_user
               if(logged_in)
                  movieFound = Movie.find_by_id(params[:id])
                  if(movieFound)
                     userMatch = (logged_in.id == movieFound.user_id)
                     if(userMatch)
                        subplaylistFound = Subplaylist.find_by_id(movieFound.subplaylist_id)
                        if(subplaylistFound)
                           @movie = movieFound
                           if(@movie.update_attributes(params[:movie]))
                              @subplaylist = subplaylistFound
                              flash[:success] = 'Movie was successfully updated.'
                              redirect_to subplaylist_movie_path(@subplaylist, @movie)
                           else
                              render "edit"
                           end
                        else
                           render "public/404"
                        end
                     else
                        redirect_to root_path
                     end
                  else
                     render "public/404"
                  end
               else
                  redirect_to root_path
               end
            elsif(type == "destroy")
               logged_in = current_user
               if(logged_in)
                  movieFound = Movie.find_by_id(params[:id]) #Need to move this below the admin section to protect it
                  if(movieFound)
                     if(logged_in.admin)
                        subplaylistFound = Subplaylist.find_by_id(movieFound.subplaylist_id)
                        if(subplaylistFound)
                           @movie = movieFound
                           @subplaylist = subplaylistFound
                           @movie.destroy
                           redirect_to mainplaylist_subplaylist_path(@subplaylist.mainplaylist, @subplaylist)
                        else
                           render "public/404"
                        end
                     else
                        redirect_to root_path
                     end
                  else
                     render "public/404"
                  end
               else
                  redirect_to root_path
               end
            elsif(type == "review") #Admin
               logged_in = current_user
               if(logged_in)
                  if(logged_in.admin)
                     allMovies = Movie.all
                     moviesToReview = allMovies.select{|movie| !movie.reviewed}
                     @movies = Kaminari.paginate_array(moviesToReview).page(params[:page]).per(10)
                  else
                     typeFound = Usertype.find_by_user_id(logged_in.id)
                     if(typeFound.privilege == "Reviewer")
                        allMovies = Movie.all
                        moviesToReview = allMovies.select{|movie| !movie.reviewed}
                        @movies = Kaminari.paginate_array(moviesToReview).page(params[:page]).per(10)
                     else
                        redirect_to root_path
                     end
                  end
               else
                  redirect_to root_path
               end
            elsif(type == "approve") #Admin
               logged_in = current_user
               if(logged_in)
                  if(logged_in.admin)
                     movieApproved
                  else
                     typeFound = Usertype.find_by_user_id(logged_in.id)
                     if(typeFound.privilege == "Reviewer")
                        movieApproved
                     else
                        redirect_to root_path
                     end
                  end
               else
                  redirect_to root_path
               end
            elsif(type == "deny") #Admin
               logged_in = current_user
               if(logged_in)
                  if(logged_in.admin)
                     movieDenied
                  else
                     typeFound = Usertype.find_by_user_id(logged_in.id)
                     if(typeFound.privilege == "Reviewer")
                        movieDenied
                     else
                        redirect_to root_path
                     end
                  end
               else
                  redirect_to root_path
               end
            end
         end
    end

    Here is the subplaylists show code

    &lt;% provide(:title, "Subplaylist: The place where users videos gets uploaded to!") %>
    &lt;% provide(:keywords, "user, video, uploaded") %>
    &lt;% provide(:description, "Allows the categorization of various videos that the user submitted successfully.") %>
    <p>&lt;%= notice %></p>
    <h1 class="pageheader">&lt;%= @subplaylist.title %></h1>
    <br />
    <p class="pagetext">&lt;%= @subplaylist.description %></p>
    <br />
    <div class="pagebox">&lt;%= paginate @movies %></div>





    <br />
    <div class="pagetext">
      &lt;% @movies.each_with_index do |movie, index| %>
         <div class="container">
            <div class="inner">
               <div class="inner">&lt;%= link_to movie.title, subplaylist_movie_path(@subplaylist, movie) %></div>
               &lt;% if current_user &amp;&amp; (current_user.id == movie.user_id || current_user.admin? )%>
                  <div class="inner">&lt;%= button_to 'Edit', edit_subplaylist_movie_path(@subplaylist, movie), method: :get %></div>
                  <div class="inner">&lt;%= button_to 'Destroy', [@subplaylist, movie], method: :delete, data: { confirm: 'Are you sure?' } %></div>
               &lt;% end %>
               <p>&lt;%= video_tag movie.video_url(:thumb).to_s, controls: true %></p>
            </div>
            <br />
            <p>Created on: &lt;%= movie.created_on.strftime("%B-%d-%Y") %></p>
            <p>Owner: &lt;%= getType(movie.user) %>&lt;%= link_to movie.user.vname, user_path(movie.user) %></p>
         </div>
         &lt;% if ((index + 1) % 3) == 0 %>
            <br />
            <br />
         &lt;% end %>
      &lt;% end %>
    </div>
    <br />
    &lt;% if current_user %>
      <p class="pagetext">&lt;%= link_to "New Movie", new_subplaylist_movie_path(@subplaylist) %></p>
      <br />
    &lt;% end %>
    <p class="pagetext">&lt;%= link_to 'Back', user_mainplaylist_path(@mainplaylist.user.vname, @subplaylist.mainplaylist.title) %></p>

    Here is the subplaylists model

    class Subplaylist &lt; ActiveRecord::Base
      attr_accessible :title, :description, :collab_mode
      belongs_to :user
      belongs_to :mainplaylist
      has_many :movies, :foreign_key => "subplaylist_id", :dependent => :destroy
      VALID_NAME = /\A[A-Za-z][A-Za-z1-9][A-Za-z1-9 ]+\z/
      validates :title, presence: true, format: {with: VALID_NAME}
      validates :description, presence: true
    end

    Here is the subplaylists controller code

    class SubplaylistsController &lt; ApplicationController
      include SubplaylistsHelper

      def index
         mode "index"
      end

      def show
         mode "show"
      end

      def new
         mode "new"
      end

      def edit
         mode "edit"
      end

      def create
         mode "create"
      end

      def update
         mode "update"
      end

      def destroy
         mode "destroy"
      end
    end

    Here is the subplaylist helper code

    module SubplaylistsHelper

      def mode(type)
         code = auto_logout
         if(code == true)
            sign_out
            redirect_to root_path
         else
            #Check if Maintenance is turned_on
            allmode = Maintenancemode.find_by_id(1)
            subplaylistmode = Maintenancemode.find_by_id(18)
            mode_turned_on = (allmode.maintenance_on || subplaylistmode.maintenance_on)
            #Determine if any maintenance is on
            if(mode_turned_on)
               #Determine if we are a regular user
               regularUser = (!current_user || !current_user.admin?)
               if(regularUser)
                  #Determine which maintenance mode is on
                  if(allmode.maintenance_on)
                     redirect_to maintenance_path
                  else
                     redirect_to subplaylists_maintenance_path
                  end
               else
                  switch type
               end
            else
               switch type
            end
         end
      end

      private
         def getType(user)
            if(user.admin)
               value = "$"
            else
               typeFound = Usertype.find_by_user_id(user.id)
               if(typeFound)
                  type = typeFound.privilege
                  if(type == "Reviewer")
                     value = "^"
                  elsif(type == "Banned")
                     value = "!"
                  else
                     value = "~"
                  end
               else
                  value = "~"
               end
            end
            return value
         end

         def switch(type)
            if(type == "show")
               subplaylistFound = Subplaylist.find_by_id(params[:id])
               if(subplaylistFound)
                  mainplaylistFound = Mainplaylist.find_by_title(params[:mainplaylist_id])
                  if(mainplaylistFound)
                     playlistMatch = (subplaylistFound.mainplaylist_id == mainplaylistFound.id)
                     if(playlistMatch)
                        @mainplaylist = mainplaylistFound
                        @subplaylist = subplaylistFound
                        subplaylistMovies = @subplaylist.movies.all
                        reviewedMovies = subplaylistMovies
                        if(subplaylistMovies.count > 0)
                           reviewedMovies = subplaylistMovies.select{|movie| movie.reviewed}
                        end
                        @movies = Kaminari.paginate_array(reviewedMovies).page(params[:page]).per(10)
                     else
                        redirect_to root_path
                     end
                  else
                     render "public/404"
                  end
               else
                  redirect_to root_path
               end
            elsif(type == "destroy")
               logged_in = current_user
               if(logged_in)
                  subplaylistFound = Subplaylist.find_by_id(params[:id]) #Need to move this below the admin section to protect it
                  if(subplaylistFound)
                     if(logged_in.admin)
                        mainplaylistFound = Mainplaylist.find_by_id(subplaylistFound.mainplaylist_id)
                        if(mainplaylistFound)
                           @subplaylist = subplaylistFound
                           @mainplaylist = mainplaylistFound
                           @subplaylist.destroy
                           redirect_to mainplaylist_subplaylists_path(@mainplaylist)
                        else
                           render "public/404"
                        end
                     else
                        redirect_to root_path
                     end
                  else
                     render "public/404"
                  end
               else
                  redirect_to root_path
               end
            end
         end
    end

    Here is the User model

    class User &lt; ActiveRecord::Base
      attr_accessible :email, :first_name, :last_name, :login_id, :vname, :password, :password_confirmation, :avatar
      has_secure_password
      mount_uploader :avatar, AvatarUploader
      before_save { |user| user.email = user.email.downcase }
      before_save { |user| user.first_name = user.first_name.humanize }

      #key
      has_one :sessionkey, :foreign_key => "user_id", :dependent => :destroy
      has_one :usertype, :foreign_key => "user_id", :dependent => :destroy

      #Video section
      has_many :mainplaylists, :foreign_key => "user_id", :dependent => :destroy
      has_many :subplaylists, :foreign_key => "user_id", :dependent => :destroy
      has_many :movies, :foreign_key => "user_id", :dependent => :destroy

      #validates :first_name, presence: true
      VALID_EMAIL_REGEX = /\A[\w+\-.]+@[a-z\d\-.]+\.[a-z]+\z/i
      VALID_NAME_REGEX = /\A[a-z][a-z][a-z]+\z/i
      VALID_VNAME_REGEX = /\A[A-Za-z][A-Za-z][A-Za-z][A-Za-z0-9 ]+([-][A-Za-z0-9 ]+)?\z/
      VALID_PASSWORD_REGEX = /\A[A-Za-z0-9!][A-Za-z0-9!][A-Za-z0-9!][A-Za-z0-9!][A-Za-z0-9!][A-Za-z0-9!]+\z/
      validates :first_name, presence: true, format: { with: VALID_NAME_REGEX}
      validates :last_name, presence: true, format: { with: VALID_NAME_REGEX}
      validates :email, presence: true, format: { with: VALID_EMAIL_REGEX}
      validates :login_id, presence: true, format: { with: VALID_VNAME_REGEX}, uniqueness: { case_sensitive: false}
      validates :vname, presence: true, format: { with: VALID_VNAME_REGEX}, uniqueness: { case_sensitive: false}
      validates :password, length: {minimum: 6}#, format: { with: VALID_PASSWORD_REGEX}
      validates :password_confirmation, presence: true #, format: { with: VALID_PASSWORD_REGEX}

      def to_param
         vname
      end
    end

    Here is the sessionkey model

    class Sessionkey &lt; ActiveRecord::Base
     belongs_to :user
    end

    Here is the usertype model

    class Usertype &lt; ActiveRecord::Base
     attr_accessible :privilege, :user_id #Only priviledge will be changeable
     belongs_to :user
    end

    Error message

    No such file or directory - ffmpeg -i /home/eric/Projects/Local/Lduelingpets/Trial/public/uploads/tmp/1466811951-3149-2702/mp4_TrialMovies.mp4
  • FFMPEG Video Cropping slower [duplicate]

    23 juin 2016, par syed imty

    This question already has an answer here :

    I am trying to crop rectangular video into a square one using FFMPEG. The video conversion take too much time.

    For a video of 30 secs, it takes around 60-70secs to convert

    FFMPEG Command

    String commandStr =" -i "+videoPath+"  -vcodec libx264 -b:v 880k -vf crop=" + videoSize.height + ":"+ videoSize.height + ":" + cropStart +":0 -preset ultrafast -strict -2 " +compressedVideoPath;

    Progress Log

    D/ViewRootImpl: ViewPostImeInputStage ACTION_DOWN
    I/System.out: Video converison : /storage/emulated/0/IHH_y/147.mp4 /storage/emulated/0/IHH_y/147upload.mp4  wxh1080:1080:420
    I/System.out: FFMpeg lib onStart
    D/FFmpeg: Running publishing updates method
    I/System.out: FFMpeg lib onProgressWARNING: linker: /data/data/com.x.y/files/ffmpeg has text relocations. This is wasting memory and prevents security hardening. Please fix.
    I/System.out: FFMpeg lib onProgressffmpeg version n2.4.2 Copyright (c) 2000-2014 the FFmpeg developers
    I/System.out: FFMpeg lib onProgress  built on Oct  7 2014 15:08:46 with gcc 4.8 (GCC)
    I/System.out: FFMpeg lib onProgress  configuration: --target-os=linux --cross-prefix=/home/sb/Source-Code/ffmpeg-android/toolchain-android/bin/arm-linux-androideabi- --arch=arm --cpu=cortex-a8 --enable-runtime-cpudetect --sysroot=/home/sb/Source-Code/ffmpeg-android/toolchain-android/sysroot --enable-pic --enable-libx264 --enable-libass --enable-libfreetype --enable-libfribidi --enable-fontconfig --enable-pthreads --disable-debug --disable-ffserver --enable-version3 --enable-hardcoded-tables --disable-ffplay --disable-ffprobe --enable-gpl --enable-yasm --disable-doc --disable-shared --enable-static --pkg-config=/home/sb/Source-Code/ffmpeg-android/ffmpeg-pkg-config --prefix=/home/sb/Source-Code/ffmpeg-android/build/armeabi-v7a-neon --extra-cflags='-I/home/sb/Source-Code/ffmpeg-android/toolchain-android/include -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -fno-strict-overflow -fstack-protector-all -mfpu=neon' --extra-ldflags='-L/home/sb/Source-Code/ffmpeg-android/toolchain-android/lib -Wl,-z,relro -Wl,-z,now -pie' --extra-libs='-lpng -lexpat -lm' --extra-cxxflags=
    I/System.out: FFMpeg lib onProgress  libavutil      54.  7.100 / 54.  7.100
    I/System.out: FFMpeg lib onProgress  libavcodec     56.  1.100 / 56.  1.100
    I/System.out: FFMpeg lib onProgress  libavformat    56.  4.101 / 56.  4.101
    I/System.out: FFMpeg lib onProgress  libavdevice    56.  0.100 / 56.  0.100
    I/System.out: FFMpeg lib onProgress  libavfilter     5.  1.100 /  5.  1.100
    I/System.out: FFMpeg lib onProgress  libswscale      3.  0.100 /  3.  0.100
    I/System.out: FFMpeg lib onProgress  libswresample   1.  1.100 /  1.  1.100
    I/System.out: FFMpeg lib onProgress  libpostproc    53.  0.100 / 53.  0.100
    I/System.out: FFMpeg lib onProgressInput #0, mov,mp4,m4a,3gp,3g2,mj2, from '/storage/emulated/0/IHH_y/147.mp4':
    I/System.out: FFMpeg lib onProgress  Metadata:
    I/System.out: FFMpeg lib onProgress    major_brand     : mp42
    I/System.out: FFMpeg lib onProgress    minor_version   : 0
    I/System.out: FFMpeg lib onProgress    compatible_brands: isommp42
    I/System.out: FFMpeg lib onProgress    creation_time   : 2016-06-23 20:00:50
    I/System.out: FFMpeg lib onProgress  Duration: 00:00:08.92, start: 0.000000, bitrate: 8966 kb/s
    I/System.out: FFMpeg lib onProgress    Stream #0:0(eng): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 1920x1080, 8983 kb/s, 16.66 fps, 16.67 tbr, 90k tbn, 180k tbc (default)
    I/System.out: FFMpeg lib onProgress    Metadata:
    I/System.out: FFMpeg lib onProgress      rotate          : 90
    I/System.out: FFMpeg lib onProgress      creation_time   : 2016-06-23 20:00:50
    I/System.out: FFMpeg lib onProgress      handler_name    : VideoHandle
    I/System.out: FFMpeg lib onProgress    Side data:
    I/System.out: FFMpeg lib onProgress      displaymatrix: rotation of -90.00 degrees
    I/System.out: FFMpeg lib onProgress    Stream #0:1(eng): Audio: aac (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 254 kb/s (default)
    I/System.out: FFMpeg lib onProgress    Metadata:
    I/System.out: FFMpeg lib onProgress      creation_time   : 2016-06-23 20:00:50
    I/System.out: FFMpeg lib onProgress      handler_name    : SoundHandle
    I/System.out: FFMpeg lib onProgress[libx264 @ 0xb5e08800] using cpu capabilities: none!
    I/System.out: FFMpeg lib onProgress[libx264 @ 0xb5e08800] profile Constrained Baseline, level 3.2
    I/System.out: FFMpeg lib onProgress[libx264 @ 0xb5e08800] 264 - core 142 - H.264/MPEG-4 AVC codec - Copyleft 2003-2014 - http://www.videolan.org/x264.html - options: cabac=0 ref=1 deblock=0:0:0 analyse=0:0 me=dia subme=0 psy=1 psy_rd=1.00:0.00 mixed_ref=0 me_range=16 chroma_me=1 trellis=0 8x8dct=0 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=0 threads=6 lookahead_threads=1 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=0 weightp=0 keyint=250 keyint_min=16 scenecut=0 intra_refresh=0 rc=abr mbtree=0 bitrate=880 ratetol=1.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=0
    I/System.out: FFMpeg lib onProgressOutput #0, mp4, to '/storage/emulated/0/IHH_y/147upload.mp4':
    I/System.out: FFMpeg lib onProgress  Metadata:
    I/System.out: FFMpeg lib onProgress    major_brand     : mp42
    I/System.out: FFMpeg lib onProgress    minor_version   : 0
    I/System.out: FFMpeg lib onProgress    compatible_brands: isommp42
    I/System.out: FFMpeg lib onProgress    encoder         : Lavf56.4.101
    I/System.out: FFMpeg lib onProgress    Stream #0:0(eng): Video: h264 (libx264) ([33][0][0][0] / 0x0021), yuv420p, 1080x1080, q=-1--1, 880 kb/s, 16.67 fps, 12800 tbn, 16.67 tbc (default)
    I/System.out: FFMpeg lib onProgress    Metadata:
    I/System.out: FFMpeg lib onProgress      rotate          : 90
    I/System.out: FFMpeg lib onProgress      creation_time   : 2016-06-23 20:00:50
    I/System.out: FFMpeg lib onProgress      handler_name    : VideoHandle
    I/System.out: FFMpeg lib onProgress      encoder         : Lavc56.1.100 libx264
    I/System.out: FFMpeg lib onProgress    Stream #0:1(eng): Audio: aac ([64][0][0][0] / 0x0040), 48000 Hz, stereo, fltp, 128 kb/s (default)
    I/System.out: FFMpeg lib onProgress    Metadata:
    I/System.out: FFMpeg lib onProgress      creation_time   : 2016-06-23 20:00:50
    I/System.out: FFMpeg lib onProgress      handler_name    : SoundHandle
    I/System.out: FFMpeg lib onProgress      encoder         : Lavc56.1.100 aac
    I/System.out: FFMpeg lib onProgressStream mapping:
    I/System.out: FFMpeg lib onProgress  Stream #0:0 -> #0:0 (h264 (native) -> h264 (libx264))
    I/System.out: FFMpeg lib onProgress  Stream #0:1 -> #0:1 (aac (native) -> aac (native))
    I/System.out: FFMpeg lib onProgressPress [q] to stop, [?] for help
    I/System.out: FFMpeg lib onProgressframe=    0 fps=0.0 q=0.0 size=       0kB time=00:00:00.96 bitrate=   0.4kbits/s    
    I/System.out: FFMpeg lib onProgressframe=    7 fps=6.8 q=0.0 size=       0kB time=00:00:01.05 bitrate=   0.4kbits/s    
    I/System.out: FFMpeg lib onProgressframe=   15 fps=9.7 q=35.0 size=      87kB time=00:00:01.07 bitrate= 660.5kbits/s    
    I/System.out: FFMpeg lib onProgressframe=   15 fps=7.3 q=35.0 size=      87kB time=00:00:01.88 bitrate= 376.7kbits/s    
    I/System.out: FFMpeg lib onProgressframe=   25 fps=9.6 q=35.0 size=     154kB time=00:00:02.05 bitrate= 613.4kbits/s    
    I/System.out: FFMpeg lib onProgressframe=   32 fps= 10 q=35.0 size=     199kB time=00:00:02.07 bitrate= 784.7kbits/s    
    I/System.out: FFMpeg lib onProgressframe=   32 fps=8.8 q=35.0 size=     199kB time=00:00:02.93 bitrate= 556.4kbits/s    
    I/System.out: FFMpeg lib onProgressframe=   42 fps= 10 q=35.0 size=     263kB time=00:00:03.06 bitrate= 705.2kbits/s    
    I/System.out: FFMpeg lib onProgressframe=   49 fps= 10 q=36.0 size=     328kB time=00:00:03.08 bitrate= 870.9kbits/s    
    I/System.out: FFMpeg lib onProgressframe=   50 fps=9.5 q=36.0 size=     341kB time=00:00:04.06 bitrate= 687.2kbits/s    
    I/System.out: FFMpeg lib onProgressframe=   59 fps= 10 q=36.0 size=     407kB time=00:00:04.06 bitrate= 821.2kbits/s    
    I/System.out: FFMpeg lib onProgressframe=   66 fps= 10 q=36.0 size=     462kB time=00:00:04.10 bitrate= 922.7kbits/s    
    I/System.out: FFMpeg lib onProgressframe=   66 fps=9.7 q=36.0 size=     462kB time=00:00:05.00 bitrate= 757.4kbits/s    
    I/System.out: FFMpeg lib onProgressframe=   77 fps= 10 q=35.0 size=     534kB time=00:00:05.06 bitrate= 864.0kbits/s    
    I/System.out: FFMpeg lib onProgressframe=   83 fps= 11 q=34.0 size=     566kB time=00:00:05.44 bitrate= 850.2kbits/s    
    I/System.out: FFMpeg lib onProgressframe=   89 fps= 11 q=34.0 size=     600kB time=00:00:06.06 bitrate= 810.6kbits/s    
    I/System.out: FFMpeg lib onProgressframe=   95 fps= 11 q=35.0 size=     636kB time=00:00:06.06 bitrate= 859.0kbits/s    
    I/System.out: FFMpeg lib onProgressframe=  100 fps= 11 q=34.0 size=     676kB time=00:00:06.28 bitrate= 881.8kbits/s    
    I/System.out: FFMpeg lib onProgressframe=  104 fps= 11 q=33.0 size=     702kB time=00:00:07.07 bitrate= 812.8kbits/s    
    I/System.out: FFMpeg lib onProgressframe=  114 fps= 11 q=34.0 size=     765kB time=00:00:07.07 bitrate= 885.7kbits/s    
    I/System.out: FFMpeg lib onProgressframe=  117 fps= 11 q=33.0 size=     787kB time=00:00:07.26 bitrate= 887.7kbits/s    
    I/System.out: FFMpeg lib onProgressframe=  117 fps= 10 q=33.0 size=     787kB time=00:00:08.03 bitrate= 802.8kbits/s    
    I/System.out: FFMpeg lib onProgressframe=  129 fps= 11 q=33.0 size=     857kB time=00:00:08.07 bitrate= 869.1kbits/s    
    I/System.out: FFMpeg lib onProgressframe=  138 fps= 11 q=34.0 size=     922kB time=00:00:08.07 bitrate= 935.1kbits/s    
    I/System.out: FFMpeg lib onProgressframe=  140 fps= 11 q=33.0 size=     937kB time=00:00:08.58 bitrate= 894.1kbits/s    
    I/System.out: FFMpeg lib onProgressframe=  144 fps= 11 q=-1.0 Lsize=    1032kB time=00:00:08.96 bitrate= 943.0kbits/s    
    I/System.out: FFMpeg lib onProgressvideo:889kB audio:138kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.512610%
    I/System.out: FFMpeg lib onProgress[libx264 @ 0xb5e08800] frame I:1     Avg QP:33.00  size: 21090
    I/System.out: FFMpeg lib onProgress[libx264 @ 0xb5e08800] frame P:143   Avg QP:34.49  size:  6217
    I/System.out: FFMpeg lib onProgress[libx264 @ 0xb5e08800] mb I  I16..4: 100.0%  0.0%  0.0%
    I/System.out: FFMpeg lib onProgress[libx264 @ 0xb5e08800] mb P  I16..4: 10.3%  0.0%  0.0%  P16..4: 21.2%  0.0%  0.0%  0.0%  0.0%    skip:68.5%
    I/System.out: FFMpeg lib onProgress[libx264 @ 0xb5e08800] final ratefactor: 34.56
    I/System.out: FFMpeg lib onProgress[libx264 @ 0xb5e08800] coded y,uvDC,uvAC intra: 16.9% 5.8% 0.1% inter: 6.2% 0.9% 0.0%
    I/System.out: FFMpeg lib onProgress[libx264 @ 0xb5e08800] i16 v,h,dc,p: 55% 30%  8%  7%
    I/System.out: FFMpeg lib onProgress[libx264 @ 0xb5e08800] i8c dc,h,v,p: 55% 18% 24%  3%
    I/System.out: FFMpeg lib onProgress[libx264 @ 0xb5e08800] kb/s:842.72
    I/System.out: FFMpeg lib onSuccessWARNING: linker: /data/data/com.x.y/files/ffmpeg has text relocations. This is wasting memory and prevents security hardening. Please fix.
    I/System.out: ffmpeg version n2.4.2 Copyright (c) 2000-2014 the FFmpeg developers
    I/System.out:   built on Oct  7 2014 15:08:46 with gcc 4.8 (GCC)
    I/System.out:   configuration: --target-os=linux --cross-prefix=/home/sb/Source-Code/ffmpeg-android/toolchain-android/bin/arm-linux-androideabi- --arch=arm --cpu=cortex-a8 --enable-runtime-cpudetect --sysroot=/home/sb/Source-Code/ffmpeg-android/toolchain-android/sysroot --enable-pic --enable-libx264 --enable-libass --enable-libfreetype --enable-libfribidi --enable-fontconfig --enable-pthreads --disable-debug --disable-ffserver --enable-version3 --enable-hardcoded-tables --disable-ffplay --disable-ffprobe --enable-gpl --enable-yasm --disable-doc --disable-shared --enable-static --pkg-config=/home/sb/Source-Code/ffmpeg-android/ffmpeg-pkg-config --prefix=/home/sb/Source-Code/ffmpeg-android/build/armeabi-v7a-neon --extra-cflags='-I/home/sb/Source-Code/ffmpeg-android/toolchain-android/include -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -fno-strict-overflow -fstack-protector-all -mfpu=neon' --extra-ldflags='-L/home/sb/Source-Code/ffmpeg-android/toolchain-android/lib -Wl,-z,relro -Wl,-z,now -pie' --extra-libs='-lpng -lexpat -lm' --extra-cxxflags=
    I/System.out:   libavutil      54.  7.100 / 54.  7.100
    I/System.out:   libavcodec     56.  1.100 / 56.  1.100
    I/System.out:   libavformat    56.  4.101 / 56.  4.101
    I/System.out:   libavdevice    56.  0.100 / 56.  0.100
    I/System.out:   libavfilter     5.  1.100 /  5.  1.100
    I/System.out:   libswscale      3.  0.100 /  3.  0.100
    I/System.out:   libswresample   1.  1.100 /  1.  1.100
    I/System.out:   libpostproc    53.  0.100 / 53.  0.100
    I/System.out: Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '/storage/emulated/0/IHH_y/147.mp4':
    I/System.out:   Metadata:
    I/System.out:     major_brand     : mp42
    I/System.out:     minor_version   : 0
    I/System.out:     compatible_brands: isommp42
    I/System.out:     creation_time   : 2016-06-23 20:00:50
    I/System.out:   Duration: 00:00:08.92, start: 0.000000, bitrate: 8966 kb/s
    I/System.out:     Stream #0:0(eng): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 1920x1080, 8983 kb/s, 16.66 fps, 16.67 tbr, 90k tbn, 180k tbc (default)
    I/System.out:     Metadata:
    I/System.out:       rotate          : 90
    I/System.out:       creation_time   : 2016-06-23 20:00:50
    I/System.out:       handler_name    : VideoHandle
    I/System.out:     Side data:
    I/System.out:       displaymatrix: rotation of -90.00 degrees
    I/System.out:     Stream #0:1(eng): Audio: aac (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 254 kb/s (default)
    I/System.out:     Metadata:
    I/System.out:       creation_time   : 2016-06-23 20:00:50
    I/System.out:       handler_name    : SoundHandle
    I/System.out: [libx264 @ 0xb5e08800] using cpu capabilities: none!
    I/System.out: [libx264 @ 0xb5e08800] profile Constrained Baseline, level 3.2
    I/System.out: [libx264 @ 0xb5e08800] 264 - core 142 - H.264/MPEG-4 AVC codec - Copyleft 2003-2014 - http://www.videolan.org/x264.html - options: cabac=0 ref=1 deblock=0:0:0 analyse=0:0 me=dia subme=0 psy=1 psy_rd=1.00:0.00 mixed_ref=0 me_range=16 chroma_me=1 trellis=0 8x8dct=0 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=0 threads=6 lookahead_threads=1 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=0 weightp=0 keyint=250 keyint_min=16 scenecut=0 intra_refresh=0 rc=abr mbtree=0 bitrate=880 ratetol=1.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=0
    I/System.out: Output #0, mp4, to '/storage/emulated/0/IHH_y/147upload.mp4':
    I/System.out:   Metadata:
    I/System.out:     major_brand     : mp42
    I/System.out:     minor_version   : 0
    I/System.out:     compatible_brands: isommp42
    I/System.out:     encoder         : Lavf56.4.101
    I/System.out:     Stream #0:0(eng): Video: h264 (libx264) ([33][0][0][0] / 0x0021), yuv420p, 1080x1080, q=-1--1, 880 kb/s, 16.67 fps, 12800 tbn, 16.67 tbc (default)
    I/System.out:     Metadata:
    I/System.out:       rotate          : 90
    I/System.out:       creation_time   : 2016-06-23 20:00:50
    I/System.out:       handler_name    : VideoHandle
    I/System.out:       encoder         : Lavc56.1.100 libx264
    I/System.out:     Stream #0:1(eng): Audio: aac ([64][0][0][0] / 0x0040), 48000 Hz, stereo, fltp, 128 kb/s (default)
    I/System.out:     Metadata:
    I/System.out:       creation_time   : 2016-06-23 20:00:50
    I/System.out:       handler_name    : SoundHandle
    I/System.out:       encoder         : Lavc56.1.100 aac
    I/System.out: Stream mapping:
    I/System.out:   Stream #0:0 -> #0:0 (h264 (native) -> h264 (libx264))
    I/System.out:   Stream #0:1 -> #0:1 (aac (native) -> aac (native))
    I/System.out: Press [q] to stop, [?] for help
    I/System.out: frame=    0 fps=0.0 q=0.0 size=       0kB time=00:00:00.96 bitrate=   0.4kbits/s    
    I/System.out: frame=    7 fps=6.8 q=0.0 size=       0kB time=00:00:01.05 bitrate=   0.4kbits/s    
    I/System.out: frame=   15 fps=9.7 q=35.0 size=      87kB time=00:00:01.07 bitrate= 660.5kbits/s    
    I/System.out: frame=   15 fps=7.3 q=35.0 size=      87kB time=00:00:01.88 bitrate= 376.7kbits/s    
    I/System.out: frame=   25 fps=9.6 q=35.0 size=     154kB time=00:00:02.05 bitrate= 613.4kbits/s    
    I/System.out: frame=   32 fps= 10 q=35.0 size=     199kB time=00:00:02.07 bitrate= 784.7kbits/s    
    I/System.out: frame=   32 fps=8.8 q=35.0 size=     199kB time=00:00:02.93 bitrate= 556.4kbits/s    
    I/System.out: frame=   42 fps= 10 q=35.0 size=     263kB time=00:00:03.06 bitrate= 705.2kbits/s    
    I/System.out: frame=   49 fps= 10 q=36.0 size=     328kB time=00:00:03.08 bitrate= 870.9kbits/s    
    I/System.out: frame=   50 fps=9.5 q=36.0 size=     341kB time=00:00:04.06 bitrate= 687.2kbits/s    
    I/System.out: frame=   59 fps= 10 q=36.0 size=     407kB time=00:00:04.06 bitrate= 821.2kbits/s    
    I/System.out: frame=   66 fps= 10 q=36.0 size=     462kB time=00:00:04.10 bitrate= 922.7kbits/s    
    I/System.out: frame=   66 fps=9.7 q=36.0 size=     462kB time=00:00:05.00 bitrate= 757.4kbits/s    
    I/System.out: frame=   77 fps= 10 q=35.0 size=     534kB time=00:00:05.06 bitrate= 864.0kbits/s    
    I/System.out: frame=   83 fps= 11 q=34.0 size=     566kB time=00:00:05.44 bitrate= 850.2kbits/s    
    I/System.out: frame=   89 fps= 11 q=34.0 size=     600kB time=00:00:06.06 bitrate= 810.6kbits/s    
    I/System.out: frame=   95 fps= 11 q=35.0 size=     636kB time=00:00:06.06 bitrate= 859.0kbits/s    
    I/System.out: frame=  100 fps= 11 q=34.0 size=     676kB time=00:00:06.28 bitrate= 881.8kbits/s    
    I/System.out: frame=  104 fps= 11 q=33.0 size=     702kB time=00:00:07.07 bitrate= 812.8kbits/s    
    I/System.out: frame=  114 fps= 11 q=34.0 size=     765kB time=00:00:07.07 bitrate= 885.7kbits/s    
    I/System.out: frame=  117 fps= 11 q=33.0 size=     787kB time=00:00:07.26 bitrate= 887.7kbits/s    
    I/System.out: frame=  117 fps= 10 q=33.0 size=     787kB time=00:00:08.03 bitrate= 802.8kbits/s    
    I/System.out: frame=  129 fps= 11 q=33.0 size=     857kB time=00:00:08.07 bitrate= 869.1kbits/s    
    I/System.out: frame=  138 fps= 11 q=34.0 size=     922kB time=00:00:08.07 bitrate= 935.1kbits/s    
    I/System.out: frame=  140 fps= 11 q=33.0 size=     937kB time=00:00:08.58 bitrate= 894.1kbits/s    
    I/System.out: frame=  144 fps= 11 q=-1.0 Lsize=    1032kB time=00:00:08.96 bitrate= 943.0kbits/s    
    I/System.out: video:889kB audio:138kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.512610%
    I/System.out: [libx264 @ 0xb5e08800] frame I:1     Avg QP:33.00  size: 21090
    I/System.out: [libx264 @ 0xb5e08800] frame P:143   Avg QP:34.49  size:  6217
    I/System.out: [libx264 @ 0xb5e08800] mb I  I16..4: 100.0%  0.0%  0.0%
    I/System.out: [libx264 @ 0xb5e08800] mb P  I16..4: 10.3%  0.0%  0.0%  P16..4: 21.2%  0.0%  0.0%  0.0%  0.0%    skip:68.5%
    I/System.out: [libx264 @ 0xb5e08800] final ratefactor: 34.56
    I/System.out: [libx264 @ 0xb5e08800] coded y,uvDC,uvAC intra: 16.9% 5.8% 0.1% inter: 6.2% 0.9% 0.0%
    I/System.out: [libx264 @ 0xb5e08800] i16 v,h,dc,p: 55% 30%  8%  7%

    As you can see from the log, the conversion fps is very low
    Need help to make it faster.

    Note : The source file is MP4 and output file is MP4 as well

  • How to create a video from image buffers using fluent-ffmpeg ?

    23 juin 2016, par Zacky Pickholz

    I’ve been trying to create a slideshow from a series of images using nodejs + fluent-ffmpeg, however it is not working well or consistently. ffmpeg occasionally emits "Error : ffmpeg exited with code 1 : pipe:0 : Invalid data found when processing input", and in case an eventual video (mp4) is created it seems to be missing images/frames.

    The process is as follows : images are loaded into memory, transformed resized to same dimensions using lwip, written sequentially into a passthrough stream, which is fed to ffmpeg as input.

    Relevant code snippets :

    var lwip = require('lwip');
    var ffmpeg = require('fluent-ffmpeg');
    var stream = require('stream');
    var imagesStream = new stream.PassThrough();

    ...

    image.batch()
               .contain(options.video.width, options.video.height, 'lanczos')
               .toBuffer(options.frames.format, {quality: 100}, (err, buffer) => {
                   if (err) {
                       throw ('error convering image to buffer. ' + err);
                   }
                   imagesStream.write(buffer, 'utf8');
                   resolve();
               });

    ...

       ffmpeg(imagesStream)
           .inputOptions('-framerate 1/' + options.frames.secsPerImage)
           .input(path.join(AUDIO_ROOT, options.audio.track))
           .save(path.join(path.join(OUTPUT_FOLDER, `${options.video.output.prefix}${timestamp}.${options.video.output.format}`)))
           .size(`${options.video.width}x${options.video.height}`)
           .on('start', () => {
               console.log('creating the clip now...')
           })
           .on('progress', (progress) => {
               var progPercent = Math.round(100 * progress.frames / (numImages * options.frames.secsPerImage * 25));
               progPercent = Math.min(progPercent, 100);
               console.log(`processing: ${progPercent}% done`)
           })
           .on('stderr', (line) => {
               console.error('ffmpeg error: ' + line);
           })
           .on('error', (error) => {
               reject('ffmpeg transcoding error: ' + error);
           })
           .on('end', () => {
               console.log('done!');
               resolve(true);
           })
           .run();

    And here is the output :

    "C:\Program Files (x86)\JetBrains\WebStorm 2016.1.1\bin\runnerw.exe" "C:\Program Files\nodejs\node.exe" vm2.js
    image count: 18
    image count: 6
    creating the clip now...
    ffmpeg error: ffmpeg version N-80335-gcb46b78 Copyright (c) 2000-2016 the FFmpeg developers
    ffmpeg error:   built with gcc 5.4.0 (GCC)
    ffmpeg error:   configuration: --enable-gpl --enable-version3 --disable-w32threads --enable-nvenc --enable-avisynth --enable-bzlib --enable-fontconfig --enable-frei0r --enable-gnutls --enable-iconv --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libfreetype --enable-libgme --enable-libgsm --enable-libilbc --enable-libmodplug --enable-libmfx --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-librtmp --enable-libschroedinger --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxavs --enable-libxvid --enable-libzimg --enable-lzma --enable-decklink --enable-zlib
    ffmpeg error:   libavutil      55. 24.100 / 55. 24.100
    ffmpeg error:   libavcodec     57. 46.100 / 57. 46.100
    ffmpeg error:   libavformat    57. 38.100 / 57. 38.100
    ffmpeg error:   libavdevice    57.  0.101 / 57.  0.101
    ffmpeg error:   libavfilter     6. 46.101 /  6. 46.101
    ffmpeg error:   libswscale      4.  1.100 /  4.  1.100
    ffmpeg error:   libswresample   2.  1.100 /  2.  1.100
    ffmpeg error:   libpostproc    54.  0.100 / 54.  0.100
    creating the clip now...
    ffmpeg error: ffmpeg version N-80335-gcb46b78 Copyright (c) 2000-2016 the FFmpeg developers
    ffmpeg error:   built with gcc 5.4.0 (GCC)
    ffmpeg error:   configuration: --enable-gpl --enable-version3 --disable-w32threads --enable-nvenc --enable-avisynth --enable-bzlib --enable-fontconfig --enable-frei0r --enable-gnutls --enable-iconv --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libfreetype --enable-libgme --enable-libgsm --enable-libilbc --enable-libmodplug --enable-libmfx --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-librtmp --enable-libschroedinger --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxavs --enable-libxvid --enable-libzimg --enable-lzma --enable-decklink --enable-zlib
    ffmpeg error:   libavutil      55. 24.100 / 55. 24.100
    ffmpeg error:   libavcodec     57. 46.100 / 57. 46.100
    ffmpeg error:   libavformat    57. 38.100 / 57. 38.100
    ffmpeg error:   libavdevice    57.  0.101 / 57.  0.101
    ffmpeg error:   libavfilter     6. 46.101 /  6. 46.101
    ffmpeg error:   libswscale      4.  1.100 /  4.  1.100
    ffmpeg error:   libswresample   2.  1.100 /  2.  1.100
    ffmpeg error:   libpostproc    54.  0.100 / 54.  0.100
    ffmpeg error: pipe:0: Invalid data found when processing input
    ffmpeg error:
    an error has occurred: ffmpeg transcoding error: Error: ffmpeg exited with code 1: pipe:0: Invalid data found when processing input

    ffmpeg error: [jpeg_pipe @ 0000000000308fe0] Format jpeg_pipe detected only with low score of 6, misdetection possible!
    ffmpeg error: Input #0, jpeg_pipe, from 'pipe:0':
    ffmpeg error:   Duration: N/A, bitrate: N/A
    ffmpeg error:     Stream #0:0: Video: mjpeg, yuvj420p(pc, bt470bg/unknown/unknown), 1920x1080 [SAR 1:1 DAR 16:9], 0.33 tbr, 0.33 tbn, 0.33 tbc
    ffmpeg error: [mp3 @ 0000000002fa0720] Estimating duration from bitrate, this may be inaccurate
    ffmpeg error: Input #1, mp3, from 'audio\avicii.mp3':
    ffmpeg error:   Metadata:
    ffmpeg error:     album           : True
    ffmpeg error:     genre           : House
    ffmpeg error:     copyright       : ℗ 2013 Avicii Music AB, / PRMD under exclusive license to Universal Music AB
    ffmpeg error:     encoded_by      : Oz
    ffmpeg error:     title           : Wake Me Up
    ffmpeg error:     artist          : Avicii
    ffmpeg error:     album_artist    : Avicii
    ffmpeg error:     disc            : 1/1
    ffmpeg error:     track           : 1/12
    ffmpeg error:     TYER            : 2013-09-13T07:00:00Z
    ffmpeg error:   Duration: 00:04:09.73, start: 0.000000, bitrate: 321 kb/s
    ffmpeg error:     Stream #1:0: Audio: mp3, 44100 Hz, stereo, s16p, 320 kb/s
    ffmpeg error:     Stream #1:1: Video: mjpeg, yuvj444p(pc, bt470bg/unknown/unknown), 600x600 [SAR 305:305 DAR 1:1], 90k tbr, 90k tbn, 90k tbc
    ffmpeg error:     Metadata:
    ffmpeg error:       comment         : Cover (front)
    ffmpeg error: No pixel format specified, yuvj420p for H.264 encoding chosen.
    ffmpeg error: Use -pix_fmt yuv420p for compatibility with outdated media players.
    ffmpeg error: [libx264 @ 000000000030e860] using SAR=1/1
    ffmpeg error: [libx264 @ 000000000030e860] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX
    ffmpeg error: [libx264 @ 000000000030e860] profile High, level 4.0
    ffmpeg error: [libx264 @ 000000000030e860] 264 - core 148 r2694 3b70645 - H.264/MPEG-4 AVC codec - Copyleft 2003-2016 - http://www.videolan.org/x264.html - options: cabac=1 ref=3 deblock=1:0:0 analyse=0x3:0x113 me=hex subme=7 psy=1 psy_rd=1.00:0.00 mixed_ref=1 me_range=16 chroma_me=1 trellis=1 8x8dct=1 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=-2 threads=12 lookahead_threads=2 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=3 b_pyramid=2 b_adapt=1 b_bias=0 direct=1 weightb=1 open_gop=0 weightp=2 keyint=250 keyint_min=25 scenecut=40 intra_refresh=0 rc_lookahead=40 rc=crf mbtree=1 crf=23.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00
    ffmpeg error: [mp4 @ 0000000002ec6980] Using AVStream.codec to pass codec parameters to muxers is deprecated, use AVStream.codecpar instead.
    ffmpeg error:     Last message repeated 1 times
    ffmpeg error: Output #0, mp4, to 'output\clip_2016-06-22_06-17-25.mp4':
    ffmpeg error:   Metadata:
    ffmpeg error:     encoder         : Lavf57.38.100
    ffmpeg error:     Stream #0:0: Video: h264 (libx264) ([33][0][0][0] / 0x0021), yuvj420p(pc), 1920x1080 [SAR 1:1 DAR 16:9], q=-1--1, 25 fps, 12800 tbn, 25 tbc
    ffmpeg error:     Metadata:
    ffmpeg error:       encoder         : Lavc57.46.100 libx264
    ffmpeg error:     Side data:
    ffmpeg error:       cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: -1
    ffmpeg error:     Stream #0:1: Audio: aac (LC) ([64][0][0][0] / 0x0040), 44100 Hz, stereo, fltp, 128 kb/s
    ffmpeg error:     Metadata:
    ffmpeg error:       encoder         : Lavc57.46.100 aac
    ffmpeg error: Stream mapping:
    ffmpeg error:   Stream #0:0 -> #0:0 (mjpeg (native) -> h264 (libx264))
    ffmpeg error:   Stream #1:0 -> #0:1 (mp3 (native) -> aac (native))
    ffmpeg error: frame=   75 fps=0.0 q=28.0 size=       0kB time=00:00:00.64 bitrate=   0.6kbits/s dup=74 drop=0 speed=1.09x    
    processing: 17% done
    ffmpeg error: frame=  150 fps= 97 q=28.0 size=     371kB time=00:00:03.64 bitrate= 835.6kbits/s dup=148 drop=0 speed=2.35x    
    processing: 33% done
    processing: 33% done
    ffmpeg error: frame=  150 fps= 73 q=28.0 size=     879kB time=00:00:07.36 bitrate= 977.8kbits/s dup=148 drop=0 speed= 3.6x    
    processing: 33% done
    ffmpeg error: frame=  150 fps= 59 q=28.0 size=     952kB time=00:00:18.36 bitrate= 424.7kbits/s dup=148 drop=0 speed=7.21x    
    processing: 33% done
    ffmpeg error: frame=  150 fps= 49 q=28.0 size=    1190kB time=00:00:32.99 bitrate= 295.3kbits/s dup=148 drop=0 speed=10.8x    
    ffmpeg error: frame=  150 fps= 42 q=28.0 size=    1409kB time=00:00:46.64 bitrate= 247.4kbits/s dup=148 drop=0 speed=13.1x    
    processing: 33% done
    processing: 33% done
    ffmpeg error: frame=  150 fps= 37 q=28.0 size=    1628kB time=00:01:00.30 bitrate= 221.1kbits/s dup=148 drop=0 speed=14.9x    
    processing: 33% done
    ffmpeg error: frame=  150 fps= 33 q=28.0 size=    1878kB time=00:01:15.83 bitrate= 202.8kbits/s dup=148 drop=0 speed=16.7x    
    processing: 33% done
    ffmpeg error: frame=  150 fps= 30 q=28.0 size=    2130kB time=00:01:31.64 bitrate= 190.4kbits/s dup=148 drop=0 speed=18.2x    
    processing: 33% done
    ffmpeg error: frame=  150 fps= 27 q=28.0 size=    2375kB time=00:01:47.18 bitrate= 181.5kbits/s dup=148 drop=0 speed=19.3x    
    processing: 33% done
    ffmpeg error: frame=  150 fps= 25 q=28.0 size=    2626kB time=00:02:03.15 bitrate= 174.7kbits/s dup=148 drop=0 speed=20.4x    
    processing: 33% done
    ffmpeg error: frame=  150 fps= 23 q=28.0 size=    2832kB time=00:02:16.20 bitrate= 170.3kbits/s dup=148 drop=0 speed=20.8x    
    ffmpeg error: frame=  150 fps= 21 q=28.0 size=    3063kB time=00:02:30.34 bitrate= 166.9kbits/s dup=148 drop=0 speed=21.3x    
    processing: 33% done
    processing: 33% done
    ffmpeg error: frame=  150 fps= 20 q=28.0 size=    3298kB time=00:02:44.93 bitrate= 163.8kbits/s dup=148 drop=0 speed=21.8x    
    processing: 33% done
    ffmpeg error: frame=  150 fps= 19 q=28.0 size=    3522kB time=00:02:58.93 bitrate= 161.3kbits/s dup=148 drop=0 speed=22.2x    
    processing: 33% done
    ffmpeg error: frame=  150 fps= 18 q=28.0 size=    3792kB time=00:03:15.83 bitrate= 158.6kbits/s dup=148 drop=0 speed=22.9x    
    processing: 33% done
    ffmpeg error: frame=  150 fps= 17 q=28.0 size=    4035kB time=00:03:31.11 bitrate= 156.6kbits/s dup=148 drop=0 speed=23.3x    
    processing: 33% done
    ffmpeg error: frame=  150 fps= 16 q=28.0 size=    4294kB time=00:03:47.62 bitrate= 154.5kbits/s dup=148 drop=0 speed=23.8x    
    processing: 33% done
    ffmpeg error: frame=  150 fps= 15 q=28.0 size=    4566kB time=00:04:04.87 bitrate= 152.7kbits/s dup=148 drop=0 speed=24.4x    
    processing: 33% done
    ffmpeg error: frame=  150 fps= 14 q=-1.0 Lsize=    4851kB time=00:04:09.73 bitrate= 159.1kbits/s dup=148 drop=0 speed=23.6x    
    ffmpeg error: video:826kB audio:3978kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.967442%
    ffmpeg error: [libx264 @ 000000000030e860] frame I:2     Avg QP:14.53  size:414604
    ffmpeg error: [libx264 @ 000000000030e860] frame P:38    Avg QP:16.59  size:   222
    ffmpeg error: [libx264 @ 000000000030e860] frame B:110   Avg QP:12.67  size:    69
    ffmpeg error: [libx264 @ 000000000030e860] consecutive B-frames:  1.3%  2.7%  0.0% 96.0%
    ffmpeg error: [libx264 @ 000000000030e860] mb I  I16..4: 25.5% 49.4% 25.1%
    ffmpeg error: [libx264 @ 000000000030e860] mb P  I16..4:  0.0%  0.0%  0.0%  P16..4:  0.7%  0.0%  0.0%  0.0%  0.0%    skip:99.2%
    ffmpeg error: [libx264 @ 000000000030e860] mb B  I16..4:  0.0%  0.0%  0.0%  B16..8:  0.0%  0.0%  0.0%  direct: 0.0%  skip:100.0%  L0: 1.2% L1:98.8% BI: 0.0%
    ffmpeg error: [libx264 @ 000000000030e860] 8x8 transform intra:49.4% inter:92.1%
    ffmpeg error: [libx264 @ 000000000030e860] coded y,uvDC,uvAC intra: 74.2% 73.7% 69.0% inter: 0.0% 0.2% 0.0%
    ffmpeg error: [libx264 @ 000000000030e860] i16 v,h,dc,p: 97%  0%  2%  1%
    ffmpeg error: [libx264 @ 000000000030e860] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 13% 19% 15%  7%  9%  7% 10%  7% 13%
    ffmpeg error: [libx264 @ 000000000030e860] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 12% 21%  8%  8% 11%  9% 12%  7% 13%
    ffmpeg error: [libx264 @ 000000000030e860] i8c dc,h,v,p: 55% 19% 16% 10%
    ffmpeg error: [libx264 @ 000000000030e860] Weighted P-Frames: Y:0.0% UV:0.0%
    ffmpeg error: [libx264 @ 000000000030e860] ref P L0: 95.4%  0.6%  3.1%  0.9%
    ffmpeg error: [libx264 @ 000000000030e860] ref B L1: 98.8%  1.2%
    ffmpeg error: [libx264 @ 000000000030e860] kb/s:1127.01
    ffmpeg error: [aac @ 0000000002ecc880] Qavg: 541.237
    ffmpeg error:
    done!