Fmpeg is an extremely powerful and versatile command line tool for converting audio and video files. It is free and available for Windows, Mac and Linux machines. Whether you want to join two video files, extract the audio component from a video file, convert your video into an animated GIF, FFmpeg can do it all and even more.
USEFUL FFMPEG COMMANDS
FFmpeg supports all popular audio and video formats. Or you can running the command ./ffmpeg -formats to get a list of every format that is supported by your FFmpeg installation. If you are just getting started, here are some commands that will give you good idea of the capabilities of this tool.
1. CUT VIDEO FILE INTO A SMALLER CLIP
You can use the time offset parameter (-ss) to specify the start time stamp in HH:MM:SS.ms format while the -t parameter is for specifying the actual duration of the clip in seconds.
If you want to split a large video into multiple smaller clips without re-encoding, ffmpeg can help. This command will split the source video into 2 parts – one ending at 50s from the start and the other beginning at 50s and ending at the end of the input video.
You can use the -vcodec parameter to specify the encoding format to be used for the output video. Encoding a video takes time but you can speed up the process by forcing a preset though it would degrade the quality of the output video.
If you have multiple audio or video files encoded with the same codecs, you can join them into a single file using FFmpeg. Create a input file with a list of all source files that you wish to concatenate and then run this command.
Use the -an parameter to disable the audio portion of a video stream.
ffmpeg -i video.mp4 -an mute-video.mp4
6. EXTRACT THE AUDIO FROM VIDEO
The -vn switch extracts the audio portion from a video and we are using the -ab switch to save the audio as a 256kbps MP3 audio file.
ffmpeg -i video.mp4 -vn -ab 256 audio.mp3
7. CONVERT A VIDEO INTO ANIMATED GIF
FFmpeg is an excellent tool for converting videos into animated GIFs and the quality isn’t bad either. Use the scale filter to specify the width of the GIF, the -t parameter specific the duration while -r specifies the frame rate (fps).
This command will extract the video frame at the 15s mark and saves it as a 800px wide JPEG image. You can also use the -s switch (like -s 400×300) to specify the exact dimensions of the image file though it will probably create a stretched image if the image size doesn’t follow the aspect ratio of the original video file.
You can change the speed of your video using the setpts (set presentation time stamp) filter of FFmpeg. This command will make the video 8x (1/8) faster or use setpts=4*PTS to make the video 4x slower.
Stack Exchange has a good overview to get you started with FFmpeg. You should also check out the official documentation at ffmpeg.org or the wiki at trac.ffmpeg.org to know about all the possible things you can do with FFmpeg.
The future is wireless and the trend is now being carried over by android phones too . These days a very few people actually prefer to use USB cables for transferring files between their PC’s and their phones / tablets . The reason being transferring files wirelessly is very convenient than transferring files through a USB cable and adding to the advantages, you don’t have to wait beside your PC until the transfers complete. While your files are being transferred to your phone you can carry on with your other works .
There are many apps on the android store that can help you to transfer files wirelessly between your PC and Android phones . Among these apps, some come with bare and basic features like simply transferring files over WiFi and some add many more exciting features apart from the basic file transferring feature. For me, when it comes to features, i believe in the more the merrier. So in this guide I will make make use of an feature packed app to transfer files between a PC and an android phone .
How to Transfer files Wirelesssly between your Android phone and PC
AirDroid is one such popular and feature packed free android app which i use primarily to transfer files wirelessly across my phone and PC . The app can be used to both receive and send files wirelessly between your PC and android phone. Airdroid is basically an android app which helps to manage your android phone from your PC’s web browser . The web interface of the app is very neat and the usability is the best among all the apps in its class. All in all its simple, beautiful and highly effective .
Usually while transferring files using AirDroid , i always get transfer speeds in excess of 3.5 Mbps, which is pretty much good. Apart from the file transferring feature, the app has many more useful features like :
You can view photos from your phone
You can send send SMS messages from PC
You can play music / videos from your phone
You can use your phone’s camera on your PC
You can take screenshots of your Phone
You can backup app as apk on your PC
All of this and more can be performed from AirDroid’s PC interface itself . Now lets move ahead and find out how we can use airdroid to transfer files wirelessly between your PC and Android phone over a WiFi network .
Instructions to transfer files wirelessly from your PC to your Phone
Step 1:InstallAirDroid from the Google play store and open the app on your phone .
Step 2: Connect to your PC’s wifi network from your android phone . ( If you are using a USB WiFi dongle like me then you can use Connectify to create a Wifi hotspot )
Step 3: Open the AirDroid app and Instantly the app will detect your WiFi network and start the AirDroid server . The app will provide you with an ip address , which you have to type into your PC’s web browser to connect to the AirDroid server .
Step 4: Manually type in the ip address provided by the AirDroid app in your web browser and press enter . Simultaneously You will see the below screen and your android phone will prompt you to accept the connection .
Step 5: On your android phone , tap on accept and you will be able to access the AirDroid interface on your PC’s web browser .
Step 6: To the right of AirDroid web interface , there is a toolbox , click the file icon and next you can select from the folder / files icon to transfer a file or folder to your android phone .
Step 7: To transfer a file to you android phone select the file tab from the AirDroid toolbox and click on the folder /file icon to select from any file from your PC . As soon as you select the file , AirDroid will start transferring the file to your android phone . similarly you can also transfer entire folders to your android phone .
The files will be stored in the following locations on your phone : SD card/airdroid/upload
Transferring files from your Phone to your PC
If you want to transfer files from your Android phone to your PC , then you have to use the Airdroid web interface on your PC . All you need to do is click on the files icon from AirDroid’s web interface and select a file from the file browser that opens up , right click on any file and select download to download the file to your PC .
The file will be downloaded as regular downloads in your web browser and can be accessed from the download menu . Here is a screenshot of the transfer speed i was getting while downloading files from my android phone . I was able to get a constant download speed of 3.5 Mbps which peaked around 4Mbps .
FFmpeg is an amazing collection of open-source tools that can record and stream video and audio. However, it can also transcode video and audio (convert the files to different formats), and that is what has me so excited. There’s also a great PHP package called ffmpeg-phpthat allows for easy use of FFmpeg from inside PHP scripts. Today, I’m going to see if I can’t help you get both of these set up on your system.
Admittedly, it’s been a while since I’ve tried to install FFmpeg, about two years. I recently thought up some ideas on how I’d like to use FFmpeg, so I thought it was time to give it a try yet again. Today, I’m proud to say that installing FFmpeg is so much easier to install compared to the past, that I dare say it’s simple.
Here is my experience with installing FFmpeg on my server and how to fix the pitfalls that I encountered.
Note that I did all the following steps on a CentOS server. The specific version is CentOS x64 6.7.
If you successfully get FFmpeg running on another distro, please comment your changes here and I’ll update the post (and make sure you get credit of course).
Also note that I experienced some bumps in the road while installing everything. While many of you may not experience these issues, I found it important to document these problems and how I fixed them in case you encounter them.
The first thing that you need to do is set up the DAG repository. This repository is an actively-maintained repository that provides a staggering number of packages with current or near current builds. Adding this repository is a great way to run the latest offerings of many packages.
Adding the DAG repository is simple. I’m using yum, so I did the following to add the repository:
Create and open a new file called /etc/yum.repos.d/dag.repo. I ran “vi /etc/yum.repos.d/dag.repo“.
Now that DAG is setup, it’s a good idea to update all your packages.
Depending on the packages you currently have installed, this could potentially upgrade, install, or replace numerous packages that may or may not be very important to you. Make sure you carefully look through that list and do any necessary preparations before telling yum that it can go ahead.
For example, yum told me that it was going to replace my current MySQL interface library for Perl with a new one. I added to my check list a note to verify that my Perl code functioned correctly after the install.
I ran into another hitch when I told yum to go ahead with the update. It informed me that my current version of Subversion conflicted with the new version it wanted to install. When this happens, you need to remove the old package before proceeding. This time, I made backups of all of my repositories and my /etc/sysconfig/svnserve file before proceeding just in case. I then removed Subversion “yum remove subversion“, ran the update process “yum update“, and installed Subversion again “yum install subversion“.
Installing – FFmpeg
Now you are ready to install FFmpeg with yum. I wanted to install all the available FFmpeg packages, so I first asked yum what was available.
yum search ffmpeg
Searching through the results, I found that three packages need to be installed: ffmpeg, ffmpeg-devel, and ffmpeg-libpostproc.
Note: If you install ffmpeg-libpostproc, the entire FFmpeg software library changes from the LGPL license to the GPL license.
After a couple of minutes, the packages and the packages that they depend on were installed.
I simply ran “ffmpeg” from the command line, and I took the lack of threatening error or warning messages as a good sign that things were working.
Preparing for ffmpeg-php
I often work with programs through command line calls in code, but I wanted something more robust this time, so I looked around and foundffmpeg-php. Based on the API, it looks to be a great tool to interface PHP and FFmpeg.
There are four things that are required to successfully install and run ffmpeg-php; they are:
ffmpeg-0.4.9_pre1 or higher
php-4.3.0 or higher
gd-2.0 or higher
PHP and FFmpeg should be good to go since at the time of this writing, DAG has PHP version 5.1.6 and FFmpeg version 0.4.9. GD and php-devel can be easily installed by running the following yum command:
yum install php-gd php-devel
In case you are wondering what php-devel is for, it installs the phpize program which is used to install ffmpeg-php.
Now we are ready to install ffmpeg-php. This can be done in six easy steps:
Extract the archive: tar -xjf ffmpeg-php-X.x.x.tbz2
./configure && make
sudo make install
This may seem like a lot of work when I earlier described this process as “simple,” but trust me that this is a thousand times easier than when I first tried installing FFmpeg. I think I spent three hours working on installing FFmpeg just to find out that it didn’t work the first time I tried.
Time and time again, package management has proven to be an extremely powerful tool. While I know the value of manually configuring and compiling code, the ease of simply using a package manager can reduce the time needed to install and manage software from hours or days to minutes.
I’m glad to see that FFmpeg has benefited from the use of these package managers and great repositories like the DAG RPM Repository.
MP4Box is a MP4 multiplexer. So let see How TO Install MP4Box on CentOS. MP4Box can import MPEG-4 video, DivX, XviD, 3ivx, h264 etc, audio streams and subtitles into the .mp4 container. The end result is a compliant MP4 stream. It can also extract streams from a .mp4. MP4Box is a command line tool, but can be used with graphical user interfaces such as YAMB or my MP4box GUI.
1) Install some dependencies packages with yum command
3) Extract gpac tar files
tar -zxvf gpac-0.5.0.tar.gz
4) Install gpac
cp -r * /usr/local/src/gpac/extra_lib
chmod 755 configure
make install lib
cp bin/gcc/libgpac.so /usr/lib
install -m644 bin/gcc/libgpac.so /usr/local/lib/libgpac.so
chmod +x /usr/local/lib/libgpac.so
And it’s done.
[root@server ~]# which MP4Box
[root@server ~]# /usr/local/bin/MP4Box -version
MP4Box - GPAC version 0.5.0-rev4065
GPAC Copyright: (c) Jean Le Feuvre 2000-2005
(c) ENST 2005-200X
Features: GPAC_HAS_SSL GPAC_HAS_JPEG GPAC_HAS_PNG
Transmission is an open source and extremely lightweight Bittorrent client. It is available for any OS and comes with it’s own GUI interface.
Although Transmission is not as popular as rTorrent/ruTorrent for seedboxes, it is still a strong solid choice as it does not require a web server to be deployed on the OS and has a light memory footprint allowing for it to run in very-low ram VPS environments.
Installing Transmission-BT to CentOS 6
For this guide I will be using CentOS 6, but any RHEL distro should work with similar commands.
Transmission can be installed quite easily through the repositories, however it is not part of the default Red Hat repositories. First we will need to install the EPEL repository to our server:
Now with this repository added we can install Transmission via yum
yum -y update
yum -y installtransmission transmission-daemon
Then start the process:
service transmission-daemon start
Transmission uses port 9091 by default, try it now using your server’s IP or FQDN.
You will either see Transmission load, or you will see an error like this:
The reason for this error is because Transmission is setup by default to only accept connections from localhost. If you get this error proceed to the next step…
Configure Transmission For Remote Access
Before we modify the configuration we’ll want to stop the service. This is important!! Transmission will write it’s setting files on shutdown, so if we edit the settings now and “restart” Transmission then our changes just get overwritten.
service transmission-daemon stop
Now we can make changes to the settings.json file. Transmission will automatically write it’s config to the user’s home directory. By default the daemon process will be using “Transmission” user which is set to /var/lib/transmission rather then using the /home folders.
If you have trouble finding your settings.json you can always use the findcommand:
find/ -name settings.json
Edit the settings.json file once you’ve located it:
Change this according to your preferences. When a “White List” is set it means only those IP addresses can access the software. If you want to use the White List then set the appropriate IP addresses here. Otherwise we can just set the whitelist to false like so: