代码之家  ›  专栏  ›  技术社区  ›  Zaz Volodymyr Null

从一组“YYYY-MM-DD”日期的图片中使用Python+GST制作视频

  •  0
  • Zaz Volodymyr Null  · 技术社区  · 14 年前

    我有一个目录和一套 YYYY-MM-DD -注明日期的文件:

    pictures/
        2010-08-14.png
        2010-08-17.png
        2010-08-18.png
    

    我有一个程序,可以变成一个视频增量编号PNG,我只需要调整它来使用日期文件代替。

    3 回复  |  直到 14 年前
        1
  •  0
  •   elmarco    14 年前

    最简单的方法是创建链接/将这些文件重命名为序列号(使用 n=0 for f in $(ls * | sort); do ln -s $f $n && $n=$((n+1))

    gst-launch multifilesrc location=%d ! pngdec ! theoraenc ! oggmux ! filesink location=movie.ogg
    

        2
  •  0
  •   Katriel    14 年前

    按日期对文件名进行排序非常简单:

    import datetime, os
    
    def key( filename ):
        return datetime.datetime.strptime( 
            filename.rsplit( ".", 1 )[ 0 ], 
            "%Y-%m-%d"
        )
    
    foo = sorted( os.listdir( ... ), key = key )
    

    count = 0
    def renamer( name ):
        os.rename( name, "{0}.png".format( count ) )
        count += 1
    
    map( renamer, foo )
    
        3
  •  0
  •   Community Mofi    7 年前

    基于 the Bash code elmarco posted

    # Untested example code. #
    
    import os tempfile shutil
    
    # Make a temporary directory: `temp`:
    temp = tempfile.mkdtemp()  
    
    # List photos:
    files = os.listdir(os.path.expanduser('~/.photostory/photos/'))
    
    # Sort photos (by date):
    files.sort()
    
    # Symlink photos to `temp`:
    for i in range(len(files)):
        os.symlink(files[i], os.path.join(temp, str(i)+'.png')  
    
    # Perform GStreamer operations on `temp`. #
    
    # Remove `temp`:
    shutil.rmtree(temp)