Recherche avancée

Médias (91)

Autres articles (67)

  • Use, discuss, criticize

    13 avril 2011, par

    Talk to people directly involved in MediaSPIP’s development, or to people around you who could use MediaSPIP to share, enhance or develop their creative projects.
    The bigger the community, the more MediaSPIP’s potential will be explored and the faster the software will evolve.
    A discussion list is available for all exchanges between users.

  • Gestion des droits de création et d’édition des objets

    8 février 2011, par

    Par défaut, beaucoup de fonctionnalités sont limitées aux administrateurs mais restent configurables indépendamment pour modifier leur statut minimal d’utilisation notamment : la rédaction de contenus sur le site modifiables dans la gestion des templates de formulaires ; l’ajout de notes aux articles ; l’ajout de légendes et d’annotations sur les images ;

  • Les tâches Cron régulières de la ferme

    1er décembre 2010, par

    La gestion de la ferme passe par l’exécution à intervalle régulier de plusieurs tâches répétitives dites Cron.
    Le super Cron (gestion_mutu_super_cron)
    Cette tâche, planifiée chaque minute, a pour simple effet d’appeler le Cron de l’ensemble des instances de la mutualisation régulièrement. Couplée avec un Cron système sur le site central de la mutualisation, cela permet de simplement générer des visites régulières sur les différents sites et éviter que les tâches des sites peu visités soient trop (...)

Sur d’autres sites (11105)

  • wMy media converter app crashes when handling file names with spaces

    8 janvier 2013, par suffa

    I wrote an app that uses ffmpeg to convert media files (.wav, .avi, .mp3, ... etc.). It works only with file names that have no spaces. When a file name with spaces is encountered, the app immediately closes. Can someone tell me if the string I'm using to call ffmpeg is correct, or need some characters escaped ? Below is a fragment of the code :

    ...
    ...
    ...

    #Select Media
    os.chdir("c:\\d-Converter\\ffmpeg\\bin")
    wrkdir = os.getcwd()
    filelist = os.listdir(wrkdir)
    self.formats1 = []

    for filename in filelist:
       (head, filename) = os.path.split(filename)
       if filename.endswith(".avi") or filename.endswith(".mp4") or filename.endswith(".flv") or filename.endswith(".mov") or filename.endswith(".mpeg4") or filename.endswith(".mpeg") or filename.endswith(".mpg2") or filename.endswith(".wav") or filename.endswith(".mp3"):
               self.formats1.append(filename)
       self.format_combo1=wx.ComboBox(panel, size=(140, -1),value='Select Media', choices=self.formats1, style=wx.CB_DROPDOWN, pos=(300,50))

       self.Bind(wx.EVT_COMBOBOX, self.fileFormats, self.format_combo1)


    ...
    ...
    ...


    def fileFormats(self, e):
       myFormats = {'audio': ('Select Format','.mp3', '.ogg', '.wav', '.wma'), 'video': ('Select Format','.flv','.mpg', '.mp4', '.mpeg')}
       bad_file = ['Media not supported']
       myFile = self.format_combo1.GetValue()
       f_exten = (x for x in myFormats['audio'] + myFormats['video'] if myFile.endswith(x))
       extension = f_exten.next()

       if extension in myFormats['audio']:
           self.format_combo2.SetItems(myFormats['audio'])

       elif extension in myFormats['video']:
           self.format_combo2.SetItems(myFormats['video'])
       else:
           self.format_combo2.SetItems(bad_file)
    ...
    ...
    ...


    def convertButton(self, e):

       unit1 = self.format_combo1.GetValue()
       if unit1:
           unit1 = self.repl_Wspace(unit1)

       #Media Formats
       unit2 = self.format_combo2.GetValue()
       unit3 = self.format_combo3.GetValue()
       unit4 = None
       unit5 = self.format_combo5.GetValue()
       bitRate = self.format_combo6.GetValue()
       unit6 = bitRate
       if unit3 == '-qmax':
           unit4 = self.format_combo4.GetValue()
       else:
           pass

       os.chdir("c:\\d-Converter\\ffmpeg\\bin")
       wrkdir = os.getcwd()

       newfile = unit1
       stripped = newfile.strip('mpeg3aviovfl4w2c.') #Strips the extension from the original file name


       progname='c:\\d-Converter\\ffmpeg\\bin\\ffmpeg.exe' + ' -i '

       preset1_a='-vn -ar 44100 -ac 2 -ab'
       preset1_b='-f mp3 '
       preset_mp3='.mp3'

       chck_unit1 = self.my_endswith(unit1)



       while True:    
           if unit5 == 'video to mp3':

               if unit6 == 'k/bs' or unit6 == '':
                   amsg = wx.MessageDialog(None, 'You must select a bit rate.', 'Media Converter', wx.ICON_INFORMATION)
                   amsg.ShowModal()
                   amsg.Destroy()
                   break

               elif unit5 == 'video to mp3' and unit6 != 'k/bs' or unit6 != '':
                   self.button.Disable()
                   self.button2.Enable()
                   self.format_combo1.Disable()
                   self.format_combo2.Disable()
                   self.format_combo3.Disable()
                   self.format_combo4.Disable()
                   self.format_combo5.Disable()
                   self.format_combo6.Disable()
                   startWorker(self.LongTaskDone, self.LongTask3, wargs=(progname, wrkdir, unit1, preset1_a, unit6, preset1_b, stripped, preset_mp3))
                   break
               elif unit1 != unit1.endswith(".mpg") or unit1.endswith(".mpeg") or unit1.endswith(".avi") or unit1.endswith(".mp4") or unit1.endswith(".flv"):
                   bmsg = wx.MessageDialog(None, 'You must select a valid format to convert to .mp3.', 'Media Converter', wx.ICON_INFORMATION)
                   bmsg.ShowModal()
                   bmsg.Destroy()
                   break

           else:
               pass



           if unit1 == 'Select Media' or unit1 == '':
               amsg = wx.MessageDialog(None, 'You must select a media file!', 'Media Converter', wx.ICON_INFORMATION)
               amsg.ShowModal()
               amsg.Destroy()
               break


           elif unit2 == 'Select Format' or unit2 == '' or unit2 == chck_unit1:
               amsg = wx.MessageDialog(None, 'You must select a valid format', 'Media Converter', wx.ICON_INFORMATION)
               amsg.ShowModal()
               amsg.Destroy()
               break


           elif unit3 == 'Select Quality' or unit3 == '':
               amsg = wx.MessageDialog(None, 'You must select quality', 'Media Converter', wx.ICON_INFORMATION)
               amsg.ShowModal()
               amsg.Destroy()
               break

           elif unit3 != 'Select Quality' or unit3 != '':
               self.format_combo5.Disable()

               if unit3 == '-qmax':
                   if unit4 == '0' or unit4 == '':
                       amsg = wx.MessageDialog(None, 'You must select number between 1-8.', 'Media Converter', wx.ICON_INFORMATION)
                       amsg.ShowModal()
                       amsg.Destroy()
                       break
                   else:
                       self.button.Disable()
                       self.button2.Enable()
                       self.format_combo1.Disable()
                       self.format_combo2.Disable()
                       self.format_combo3.Disable()
                       self.format_combo4.Disable()
                       self.format_combo5.Disable()
                       startWorker(self.LongTaskDone, self.LongTask2, wargs=(progname,wrkdir,unit1,unit3,unit4,stripped,unit2))
                       break
               elif unit3 == '-sameq':
                   self.button.Disable()
                   self.button2.Enable()
                   self.format_combo1.Disable()
                   self.format_combo2.Disable()
                   self.format_combo3.Disable()
                   self.format_combo4.Disable()
                   self.format_combo5.Disable()
                   startWorker(self.LongTaskDone, self.LongTask, wargs=(progname,wrkdir,unit1,unit3,stripped,unit2))
                   break  




    def LongTask(self, progname, wrkdir, unit1, unit3, stripped, unit2):
       convert_file1 = progname + wrkdir + '\\' + unit1 + ' ' + unit3 + ' ' + stripped + unit2
       self.statusbar.SetStatusText("Converting: " + unit1 + "...")
       os.system(convert_file1)
       print convert_file1


    def LongTask2(self, progname, wrkdir, unit1, unit3, unit4, stripped, unit2):
       convert_file2 = progname + wrkdir + '\\' + unit1 + ' ' + unit3 + ' ' + unit4 + ' ' + stripped + unit2
       self.statusbar.SetStatusText("Converting: " + unit1 + "...")
       os.system(convert_file2)

    ...
    ...
    ...
  • My media converter app crashes when handling file names with spaces

    24 mars 2014, par suffa

    I wrote an app that uses ffmpeg to convert media files (.wav, .avi, .mp3, ... etc.). It works only with file names that have no spaces. When a file name with spaces is encountered, the app immediately closes. Can someone tell me if the string I'm using to call ffmpeg is correct, or need some characters escaped ? Below is a fragment of the code :

    ...
    ...
    ...

    #Select Media
    os.chdir("c:\\d-Converter\\ffmpeg\\bin")
    wrkdir = os.getcwd()
    filelist = os.listdir(wrkdir)
    self.formats1 = []

    for filename in filelist:
       (head, filename) = os.path.split(filename)
       if filename.endswith(".avi") or filename.endswith(".mp4") or filename.endswith(".flv") or filename.endswith(".mov") or filename.endswith(".mpeg4") or filename.endswith(".mpeg") or filename.endswith(".mpg2") or filename.endswith(".wav") or filename.endswith(".mp3"):
               self.formats1.append(filename)
       self.format_combo1=wx.ComboBox(panel, size=(140, -1),value='Select Media', choices=self.formats1, style=wx.CB_DROPDOWN, pos=(300,50))

       self.Bind(wx.EVT_COMBOBOX, self.fileFormats, self.format_combo1)


    ...
    ...
    ...


    def fileFormats(self, e):
       myFormats = {'audio': ('Select Format','.mp3', '.ogg', '.wav', '.wma'), 'video': ('Select Format','.flv','.mpg', '.mp4', '.mpeg')}
       bad_file = ['Media not supported']
       myFile = self.format_combo1.GetValue()
       f_exten = (x for x in myFormats['audio'] + myFormats['video'] if myFile.endswith(x))
       extension = f_exten.next()

       if extension in myFormats['audio']:
           self.format_combo2.SetItems(myFormats['audio'])

       elif extension in myFormats['video']:
           self.format_combo2.SetItems(myFormats['video'])
       else:
           self.format_combo2.SetItems(bad_file)
    ...
    ...
    ...


    def convertButton(self, e):

       unit1 = self.format_combo1.GetValue()
       if unit1:
           unit1 = self.repl_Wspace(unit1)

       #Media Formats
       unit2 = self.format_combo2.GetValue()
       unit3 = self.format_combo3.GetValue()
       unit4 = None
       unit5 = self.format_combo5.GetValue()
       bitRate = self.format_combo6.GetValue()
       unit6 = bitRate
       if unit3 == '-qmax':
           unit4 = self.format_combo4.GetValue()
       else:
           pass

       os.chdir("c:\\d-Converter\\ffmpeg\\bin")
       wrkdir = os.getcwd()

       newfile = unit1
       stripped = newfile.strip('mpeg3aviovfl4w2c.') #Strips the extension from the original file name


       progname='c:\\d-Converter\\ffmpeg\\bin\\ffmpeg.exe' + ' -i '

       preset1_a='-vn -ar 44100 -ac 2 -ab'
       preset1_b='-f mp3 '
       preset_mp3='.mp3'

       chck_unit1 = self.my_endswith(unit1)



       while True:    
           if unit5 == 'video to mp3':

               if unit6 == 'k/bs' or unit6 == '':
                   amsg = wx.MessageDialog(None, 'You must select a bit rate.', 'Media Converter', wx.ICON_INFORMATION)
                   amsg.ShowModal()
                   amsg.Destroy()
                   break

               elif unit5 == 'video to mp3' and unit6 != 'k/bs' or unit6 != '':
                   self.button.Disable()
                   self.button2.Enable()
                   self.format_combo1.Disable()
                   self.format_combo2.Disable()
                   self.format_combo3.Disable()
                   self.format_combo4.Disable()
                   self.format_combo5.Disable()
                   self.format_combo6.Disable()
                   startWorker(self.LongTaskDone, self.LongTask3, wargs=(progname, wrkdir, unit1, preset1_a, unit6, preset1_b, stripped, preset_mp3))
                   break
               elif unit1 != unit1.endswith(".mpg") or unit1.endswith(".mpeg") or unit1.endswith(".avi") or unit1.endswith(".mp4") or unit1.endswith(".flv"):
                   bmsg = wx.MessageDialog(None, 'You must select a valid format to convert to .mp3.', 'Media Converter', wx.ICON_INFORMATION)
                   bmsg.ShowModal()
                   bmsg.Destroy()
                   break

           else:
               pass



           if unit1 == 'Select Media' or unit1 == '':
               amsg = wx.MessageDialog(None, 'You must select a media file!', 'Media Converter', wx.ICON_INFORMATION)
               amsg.ShowModal()
               amsg.Destroy()
               break


           elif unit2 == 'Select Format' or unit2 == '' or unit2 == chck_unit1:
               amsg = wx.MessageDialog(None, 'You must select a valid format', 'Media Converter', wx.ICON_INFORMATION)
               amsg.ShowModal()
               amsg.Destroy()
               break


           elif unit3 == 'Select Quality' or unit3 == '':
               amsg = wx.MessageDialog(None, 'You must select quality', 'Media Converter', wx.ICON_INFORMATION)
               amsg.ShowModal()
               amsg.Destroy()
               break

           elif unit3 != 'Select Quality' or unit3 != '':
               self.format_combo5.Disable()

               if unit3 == '-qmax':
                   if unit4 == '0' or unit4 == '':
                       amsg = wx.MessageDialog(None, 'You must select number between 1-8.', 'Media Converter', wx.ICON_INFORMATION)
                       amsg.ShowModal()
                       amsg.Destroy()
                       break
                   else:
                       self.button.Disable()
                       self.button2.Enable()
                       self.format_combo1.Disable()
                       self.format_combo2.Disable()
                       self.format_combo3.Disable()
                       self.format_combo4.Disable()
                       self.format_combo5.Disable()
                       startWorker(self.LongTaskDone, self.LongTask2, wargs=(progname,wrkdir,unit1,unit3,unit4,stripped,unit2))
                       break
               elif unit3 == '-sameq':
                   self.button.Disable()
                   self.button2.Enable()
                   self.format_combo1.Disable()
                   self.format_combo2.Disable()
                   self.format_combo3.Disable()
                   self.format_combo4.Disable()
                   self.format_combo5.Disable()
                   startWorker(self.LongTaskDone, self.LongTask, wargs=(progname,wrkdir,unit1,unit3,stripped,unit2))
                   break  




    def LongTask(self, progname, wrkdir, unit1, unit3, stripped, unit2):
       convert_file1 = progname + wrkdir + '\\' + unit1 + ' ' + unit3 + ' ' + stripped + unit2
       self.statusbar.SetStatusText("Converting: " + unit1 + "...")
       os.system(convert_file1)
       print convert_file1


    def LongTask2(self, progname, wrkdir, unit1, unit3, unit4, stripped, unit2):
       convert_file2 = progname + wrkdir + '\\' + unit1 + ' ' + unit3 + ' ' + unit4 + ' ' + stripped + unit2
       self.statusbar.SetStatusText("Converting: " + unit1 + "...")
       os.system(convert_file2)

    ...
    ...
    ...
  • Transcode Adobe Media Encoder live stream using FFMPEG in node.js

    23 juin 2014, par user2757842

    I am using Adobe media live encoder to send a stream up to the adobe media server. What I would like to do is take that stream and transcode it to a local file on my machine in another format other that .f4m

    Here is the code I have so far, it is built using FFmpeg within a node.js app :

    var ffmpeg = require('fluent-ffmpeg');
    var fs = require('fs');

    //make sure you set the correct path to your video file
    var inStream = fs.createReadStream('rtmp://localhost/livepkgr/livestream live=1'); // this is where the streams are stored
    var command = new ffmpeg({ source: inStream});

    //Set the path to where FFmpeg is installed
    command.setFfmpegPath("C:\\Users\\Jay\\Documents\\FFMPEG\\bin\\ffmpeg.exe");

    command
    //set the size
    .withSize('100%')

    // set fps
    .withFps(24)

    // set output format to force
    .toFormat('ismv')

    // setup event handlers
    .on('end', function() {
       console.log('file has been converted successfully');
    })
    .on('error', function(err) {
       console.log('an error happened: ' + err.message);
    })
    // save to file <-- the new file I want -->
    .saveToFile('rtmp://localhost/livepkgr/livestream1'); //this is where i want to store the newly converted stream

    I have it working with a local file but when I try it with my live stream, I get this error

    events.js:72
           throw er; // Unhandled 'error' event
                 ^
    Error: ENOENT, open 'C:\Users\Jay\workspace\FFMPEGtest\rtmp:\localhost\livepkgr\livestream live=1'

    Anyone seen this before ?