Recherche avancée

Médias (0)

Mot : - Tags -/formulaire

Aucun média correspondant à vos critères n’est disponible sur le site.

Autres articles (83)

  • Mise à jour de la version 0.1 vers 0.2

    24 juin 2013, par

    Explications des différents changements notables lors du passage de la version 0.1 de MediaSPIP à la version 0.3. Quelles sont les nouveautés
    Au niveau des dépendances logicielles Utilisation des dernières versions de FFMpeg (>= v1.2.1) ; Installation des dépendances pour Smush ; Installation de MediaInfo et FFprobe pour la récupération des métadonnées ; On n’utilise plus ffmpeg2theora ; On n’installe plus flvtool2 au profit de flvtool++ ; On n’installe plus ffmpeg-php qui n’est plus maintenu au (...)

  • Personnaliser en ajoutant son logo, sa bannière ou son image de fond

    5 septembre 2013, par

    Certains thèmes prennent en compte trois éléments de personnalisation : l’ajout d’un logo ; l’ajout d’une bannière l’ajout d’une image de fond ;

  • Ecrire une actualité

    21 juin 2013, par

    Présentez les changements dans votre MédiaSPIP ou les actualités de vos projets sur votre MédiaSPIP grâce à la rubrique actualités.
    Dans le thème par défaut spipeo de MédiaSPIP, les actualités sont affichées en bas de la page principale sous les éditoriaux.
    Vous pouvez personnaliser le formulaire de création d’une actualité.
    Formulaire de création d’une actualité Dans le cas d’un document de type actualité, les champs proposés par défaut sont : Date de publication ( personnaliser la date de publication ) (...)

Sur d’autres sites (10999)

  • 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)

    ...
    ...
    ...
  • Why the source order matters on working with multiple media sources in a single AVFormatContext ?

    24 avril 2024, par Mehmet YILMAZ

    avformat_open_input() deletes the AVFormatContext* and returns -6 when the source order changes.

    


    I am trying to open multiple media sources dynamically with different(mixed) formats and codecs in a single context (AVFormatContext).

    


    My media sources are a BlackMagic DeckLink Duo SDI input as first source and an mp4 file or rtsp stream as second.

    


    When I order to open (avformat_open_input()) the source 2 (RTSP or MP4 file) at first and then open the BlackMagic DeckLink Duo, proceed as expected.

    


    But when I change the order, and first open the DeckLink and then try to open RTSP stream or MP4 file, as I inspected in the step debugger ; AVFormatContext* deleting in the av_open_input() function and it returns -6 as result.

    


    Please find the simple error reproduction code snappet below ;

    


    AVFormatContext* context{avformat_alloc_context()};
const char* url_source1{"DeckLink Duo (1)"};
const AVInputFormat* format_source1{av_find_input_format("decklink")};

const char* url_source2{"http://commondatastorage.googleapis.com/gtv-videos-bucket/sample/BigBuckBunny.mp4"};

// Open the first media input
int result = avformat_open_input(&context, url_source1, format_source1, NULL);

if(result < 0) {
  exit(1);
}

// Open the second media input
// This function in current order deletes the context and returns -6
result = avformat_open_input(&context, url_source2, NULL, NULL);
if(result < 0) {
  exit(1);
}

// Since the context has been deleted in previous step, segmentation fault accours here!
result = avformat_find_stream_info(context, NULL);
if(result < 0) {
  exit(1);
}

std::cout << "Total number of streams: " << context->nb_streams << std::endl;



    


    But When I change the order and call the avformat_open_input() first for the mp4 file and then the DeckLink device as following it proceed as expected, no error.

    


    AVFormatContext* context{avformat_alloc_context()};
const char* url_source1{"DeckLink Duo (1)"};
const AVInputFormat* format_source1{av_find_input_format("decklink")};

const char* url_source2{"http://commondatastorage.googleapis.com/gtv-videos-bucket/sample/BigBuckBunny.mp4"};


// Open the second media input
int result = avformat_open_input(&context, url_source2, NULL, NULL);
if(result < 0) {
  exit(1);
}


// Open the first media input
result = avformat_open_input(&context, url_source1, format_source1, NULL);

if(result < 0) {
  exit(1);
}


result = avformat_find_stream_info(context, NULL);
if(result < 0) {
  exit(1);
}

std::cout << "Total number of streams: " << context->nb_streams << std::endl;



    


  • Anomalie #2069 (Fermé) : media changer un fichier

    5 juillet 2011, par cedric -