Recherche avancée

Médias (91)

Autres articles (23)

  • Websites made ​​with MediaSPIP

    2 mai 2011, par

    This page lists some websites based on MediaSPIP.

  • Creating farms of unique websites

    13 avril 2011, par

    MediaSPIP platforms can be installed as a farm, with a single "core" hosted on a dedicated server and used by multiple websites.
    This allows (among other things) : implementation costs to be shared between several different projects / individuals rapid deployment of multiple unique sites creation of groups of like-minded sites, making it possible to browse media in a more controlled and selective environment than the major "open" (...)

  • Other interesting software

    13 avril 2011, par

    We don’t claim to be the only ones doing what we do ... and especially not to assert claims to be the best either ... What we do, we just try to do it well and getting better ...
    The following list represents softwares that tend to be more or less as MediaSPIP or that MediaSPIP tries more or less to do the same, whatever ...
    We don’t know them, we didn’t try them, but you can take a peek.
    Videopress
    Website : http://videopress.com/
    License : GNU/GPL v2
    Source code : (...)

Sur d’autres sites (5725)

  • Last subprocess call not working in concatenation code with FFMPEG. How should I go about fixing this ?

    28 novembre 2019, par S1mple
    clips = []

    #generates a list of mp4 files in a folder
    def clipFinder(CurrentDir, fileType):
       clips.clear()
       for r,d,f in os.walk(CurrentDir):
           for file in f:
               if fileType in file:
                   clips.append(r+file)
       random.shuffle(clips)

    #removes all files that have the string 'vod' in them as they cause problems during concatenation
    def removeVods(r):
       for f in clips:
           if 'vod' in clips:
               os.remove(r+f)

    #generates a string using the clips list to insert into the ffmpeg command
    def clipString():
       string = 'intermediate'
       clipList = []
       clipNum = 1
       for f in clips:
           clipList.append(string+str(clipNum)+'.ts'+'|')
           clipNum+=1
       string1 = ''.join(clipList)
       string2 = string1[0:len(string1)-1]
       return string2

    #concatenates the mp4 files in the clipString
    def concatFiles():
       clipFinder('***', '.mp4')
       removeVods('***')
       i = 0
       intermediates = []
       for f in clips:
           subprocess.call(['***', '-i', clips[i], '-c', 'copy', '-bsf:v', 'h264_mp4toannexb', '-f', 'mpegts', 'intermediate'+ str(i+1) +'.ts'])
           i += 1
       clipsLength = len(clips)
       subprocess.call['***', '-i', '"concat:' + clipString() + '"', '-c', 'copy', '-bsf:a
       aac_adtstoasc', 'output.mp4']

    I am trying to make a clip concatenator, but the last subprocess call won’t run and gives me no error. When I run the script the first FFmpeg call works fine and gives me my intermediate mp4 files, however, the second command, which works when I run it in terminal, does not work when I run it from python using subprocess.call.

    Problematic code :

    subprocess.call(['***', '-i', '"concat:' + clipString() + '"', '-c', 'copy', '-bsf:a aac_adtstoasc', 'output.mp4'])

    all places with * were paths such as : /davidscomputer/bin/ffmpeg/

  • avfilter : always call ff_default_query_formats

    20 octobre 2023, par Niklas Haas
    avfilter : always call ff_default_query_formats
    

    Even if a query func is set. This is safe to do, because
    ff_default_query_formats is documented not to touch any filter lists
    that were already set by the query func.

    The reason to do this is because it allows us to extend
    AVFilterFormatsConfig without having to touch every filter in existence.
    An alternative implementation of this commit would be to explicitly add
    a `ff_default_query_formats` call at the end of every query_formats
    function, but that would end up functionally equivalent to this change
    while touching a whole lot more code paths for no reason.

    As a bonus, eliminates some code/logic duplication from this function.

    • [DH] libavfilter/avfiltergraph.c
  • Cannot run ffmpeg in subproces.call

    27 juin 2012, par Richard Knop

    So, I have a simple class where I am trying to save a string response from a terminal ffmpeg command into an object property :

    import os
    import subprocess

    class Movie(object):

       absolute_path = None
       movie_info = None

       def __init__(self, path):
           self.absolute_path = "%s/%s" % (os.getcwd(), path)
           if(os.path.exists(self.absolute_path) is False):
               raise IOError("File does not exist")

       def get_movie_info(self):
           ffmpeg_command = "ffmpeg -i %s" % self.absolute_path
           self.movie_info = subprocess.call(ffmpeg_command)
           print self.movie_info

    When I then run this command in cmd :

    import os
    import sys
    sys.path.append(os.getcwd())

    from Encode.Movie import Movie

    try:
       movie = Movie("tests/test_1.mpg")
       movie.get_movie_info()
    except IOError as e:
       print e

    I get this exception :

    richard@richard-desktop:~/projects/hello-python$ python main.py
    Traceback (most recent call last):
     File "main.py", line 9, in <module>
       movie.get_movie_info()
     File "/home/richard/projects/hello-python/Encode/Movie.py", line 16, in get_movie_info
       self.movie_info = subprocess.call(ffmpeg_command)
     File "/usr/lib/python2.7/subprocess.py", line 493, in call
       return Popen(*popenargs, **kwargs).wait()
     File "/usr/lib/python2.7/subprocess.py", line 679, in __init__
       errread, errwrite)
     File "/usr/lib/python2.7/subprocess.py", line 1249, in _execute_child
       raise child_exception
    OSError: [Errno 2] No such file or directory
    </module>

    The path is correct because when I do print self.absolute_path before subprocess.call(), I get :

    /home/richard/projects/hello-python/tests/test_1.mpg

    And this file exists.