Take the 2-minute tour ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

I have couple of (over 100) mp4 video files, which are approximately 15 MB each. I think they are unnecessarily high quality videos, I want to lower the sizes of each, by reducing the quality. I know I can do this with ffmpeg, but I am not familiar with concepts like bitrates, codes etc, so can anyone help with that? This is metadata of one of them:

Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '16.8-AnomalyDetection-AnomalyDetectionUsingTheMultivariateGaussianDistribution-OPTIONAL.mp4':
  Metadata:
    major_brand     : isom
    minor_version   : 1
    compatible_brands: isom
    creation_time   : 2011-12-06 18:56:20
  Duration: 00:14:03.40, start: 0.000000, bitrate: 176 kb/s
    Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 1000x562 [SAR 1:1 DAR 500:281], 45 kb/s, 15 fps, 15 tbr, 15 tbn, 30 tbc
    Metadata:
      creation_time   : 1970-01-01 00:00:00
      handler_name    : VideoHandler
    Stream #0:1(und): Audio: aac (mp4a / 0x6134706D), 44100 Hz, stereo, s16, 127 kb/s
    Metadata:
      creation_time   : 2011-12-06 18:56:20
      handler_name    : GPAC ISO Audio Handler
share|improve this question
1  
You do realize that the audio is responsible for over 70% of your file size? –  Daniel Beck Jan 8 '12 at 22:24
    
No I do not :) As I say, I am not particularly good with audio and video encodings. –  yasar Jan 8 '12 at 22:26
    
You can see the lines that contain Audio and Video, with the former having 127 kb/s and the latter 45 kb/s, making up almost all of the total 176 kb/s. –  Daniel Beck Jan 8 '12 at 22:31

1 Answer 1

I ended up doing this:

#!/bin/bash
for d in $(find .. -maxdepth 1 -name '*.mp4'); do 
    filename=$(echo "$d" | sed 's:../::')
    ffmpeg -i "$d" -b:a 64k -ac 1 -ar 22050 -acodec libmp3lame -s\
    640x480 -r 10 "$filename" && rm --interactive=never "$d"
done

Options stands for:

  • -b:a -> Set audio bitrate
  • -ac -> Set the number of audio channels.
  • -ar -> Set the audio sampling frequency
  • -s -> Set video dimensions.
  • -r -> Set frames per second
share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.