使用python将任何格式的视频(flv,3gp,MXF等)转换为django中的MP4

时间:2013-03-07 06:22:55

标签: python html django video mp4

我正在使用django和非常新手使用它。目前正在建立一个基本的上传页面,将视频上传到硬盘(基本上在media内的django project文件夹中)

所以我的代码工作正常,视频会成功上传到媒体文件夹。

我正在使用html video tag在单独的html页面上显示所有上传的视频, 实际上问题是MP4格式的视频正在播放而剩下的不是。

以下是我的部分HTML代码和视图函数

uploads_list.html

<div style="padding-top:90px;">
  <video id="vid" width="350" height="250" controls="controls">
           <source src="{{MEDIA_URL}}videos/django_cms-_frontend_editing_1280x720.mp4" type="video/mp4" />       
   </video>
  <video id="vid_2" width="350" height="223" controls="controls">
           <source src="{{MEDIA_URL}}videos/1100000.flv" type="video/ogg" />       
   </video>
</div>

最后我的目的是将所有上传的视频转换为MP4格式并在上传过程中存储在media文件夹中,以便我们可以使用html video显示所有这些视频标签

views.py

def upload_file(request):
    if request.method == 'POST':
        form = UploadFileForm(request.POST, request.FILES)
        if form.is_valid() and form.is_multipart():
            handle_uploaded_file(request.FILES['file'])
            return HttpResponseRedirect('/uploads_list')  # which renders `uploads_list.html` page
    else:
        form = UploadFileForm()
    return render_to_response('uploads_form.html', {'form': form,'total_files':os.listdir(settings.MEDIA_ROOT),'path':settings.MEDIA_ROOT},context_instance=RequestContext(request))

def handle_uploaded_file(file,path=''):
    filename = file._get_name()
    destination_file = open('%s/%s' % (settings.MEDIA_ROOT, str(path) + str(filename)), 'wb+')
    for chunk in file.chunks():
        destination_file.write(chunk)
    destination_file.close()

所以有人可以告诉我们,如何将上传过的视频(flv3gpMXF等格式)转换为{{1在存储到django中的MP4文件夹之前格式化?

1 个答案:

答案 0 :(得分:4)

import subprocess
subprocess.call('ffmpeg -i video.flv video.mp4')