codingdirectional: Remove audio from video with Python and FFmpeg

While I am busy tidying up the tkinter’s user interface I have included another feature into this ongoing video editing project The python program below will remove the audio from the video file with the help of the FFmpeg tool. We need FFmpeg tool to process the video file so if you have not yet installed FFmpeg tool on your computer then you can do so through this link.

 from tkinter import * from tkinter import filedialog import os import subprocess import tkinter.ttk as tk  win = Tk() # Create instance win.title("Manipulate Video") # Add a title win.resizable(0, 0) # Disable resizing the GUI win.configure(background='white') # change background color  #  Create a label aLabel = Label(win, text="Select video size and video", anchor="center", padx=13, pady=10, relief=RAISED) aLabel.grid(column=0, row=0, sticky=W+E) aLabel.configure(foreground="black") aLabel.configure(background="white") aLabel.configure(wraplength=110)  # Create a combo box vid_size = StringVar() # create a string variable preferSize = tk.Combobox(win, textvariable=vid_size)  preferSize['values'] = (1920, 1280, 854, 640) # video width in pixels preferSize.grid(column=0, row=1) # the position of combo box preferSize.current(0) # select item one   # Open a video file def openVideo():                  fullfilename = filedialog.askopenfilename(initialdir="/", title="Select a file", filetypes=[("Video file", "*.mp4; *.avi ")]) # select a video file from the hard drive         if(fullfilename != ''):                 scale_vid = preferSize.get() # retrieve value in the comno box                 new_size = str(scale_vid)                 dir_path = os.path.dirname(os.path.realpath(fullfilename))                 os.chdir(dir_path)                 f = new_size  + '.mp4' # the new output file name/format                 f2 = f + '1.mp4' # animated gif                 #subprocess.call(['ffmpeg', '-stream_loop', '2', '-i', fullfilename, '-vf', 'scale=' + new_size + ':-1', '-y', f]) # resize and loop the video with ffmpeg                 #subprocess.call(['ffmpeg', '-i', fullfilename, '-vf', 'scale=' + new_size + ':-1', '-y', '-r', '24', f]) # resize and speed up the video with ffmpeg                 #subprocess.call(['ffmpeg', '-i', fullfilename, '-vf', 'scale=' + new_size + ':-1', '-y', f]) # resize the video with ffmpeg                 #subprocess.call(['ffmpeg', '-i', f, '-ss', '00:02:30', '-y', f2]) # create animated gif starting from 2 minutes and 30 seconds to the end                 subprocess.call(['ffmpeg', '-i', f, '-c', 'copy', '-y', '-an', f2]) # remove audio from the original video                  action_vid = Button(win, text="Open Video", command=openVideo, padx=2) action_vid.grid(column=0, row=2, sticky=E+W) action_vid.configure(background='black') action_vid.configure(foreground='white')  win.mainloop() 

Not much has been changed from the previous program. In the previous article, I had talked about retrieving the duration of the video so we do not need to hard code the video starting time but today I had come out with a better idea but we will leave that idea for now and concentrate on tidy up the user interface first in the next article. Probably I will write another article on the user interface today so do visit this website again later on.

Planet Python

Leave a Reply

Your email address will not be published. Required fields are marked *