Вы находитесь на странице: 1из 68

Quick Start Guide to FFmpeg: Learn to

Use the Open Source


Multimedia-Processing Tool like a Pro
1st Edition V. Subhash
Visit to download the full and correct content document:
https://ebookmass.com/product/quick-start-guide-to-ffmpeg-learn-to-use-the-open-so
urce-multimedia-processing-tool-like-a-pro-1st-edition-v-subhash/
Printed in
full color

Quick Start
Guide to FFmpeg
Learn to Use the Open Source
Multimedia-Processing Tool
like a Pro

V. Subhash
Quick Start Guide to
FFmpeg
Learn to Use the Open Source
Multimedia-Processing
Tool like a Pro

V. Subhash
Quick Start Guide to FFmpeg: Learn to Use the Open Source
Multimedia-­Processing Tool like a Pro
V. Subhash
Chennai, Tamil Nadu, India

ISBN-13 (pbk): 978-1-4842-8700-2 ISBN-13 (electronic): 978-1-4842-8701-9


https://doi.org/10.1007/978-1-4842-8701-9

Copyright © 2023 by V. Subhash


This work is subject to copyright. All rights are reserved by the Publisher, whether the whole or
part of the material is concerned, specifically the rights of translation, reprinting, reuse of
illustrations, recitation, broadcasting, reproduction on microfilms or in any other physical way,
and transmission or information storage and retrieval, electronic adaptation, computer software,
or by similar or dissimilar methodology now known or hereafter developed.
Trademarked names, logos, and images may appear in this book. Rather than use a trademark
symbol with every occurrence of a trademarked name, logo, or image we use the names, logos,
and images only in an editorial fashion and to the benefit of the trademark owner, with no
intention of infringement of the trademark.
The use in this publication of trade names, trademarks, service marks, and similar terms, even if
they are not identified as such, is not to be taken as an expression of opinion as to whether or not
they are subject to proprietary rights.
While the advice and information in this book are believed to be true and accurate at the date of
publication, neither the authors nor the editors nor the publisher can accept any legal
responsibility for any errors or omissions that may be made. The publisher makes no warranty,
express or implied, with respect to the material contained herein.
Managing Director, Apress Media LLC: Welmoed Spahr
Acquisitions Editor: James Robinson-Prior
Development Editor: James Markham
Coordinating Editor: Jill Balzano
Cover image designed by Freepik (www.freepik.com)
Distributed to the book trade worldwide by Springer Science+Business Media LLC, 1 New York
Plaza, Suite 4600, New York, NY 10004. Phone 1-800-SPRINGER, fax (201) 348-4505, e-mail
orders-ny@springer-sbm.com, or visit www.springeronline.com. Apress Media, LLC is a
California LLC and the sole member (owner) is Springer Science + Business Media Finance Inc
(SSBM Finance Inc). SSBM Finance Inc is a Delaware corporation.
For information on translations, please e-mail booktranslations@springernature.com; for
reprint, paperback, or audio rights, please e-mail bookpermissions@springernature.com.
Apress titles may be purchased in bulk for academic, corporate, or promotional use. eBook
versions and licenses are also available for most titles. For more information, reference our Print
and eBook Bulk Sales web page at http://www.apress.com/bulk-sales.
Any source code or other supplementary material referenced by the author in this book is
available to readers on GitHub (https://github.com/Apress). For more detailed information,
please visit http://www.apress.com/source-code.
Printed on acid-free paper
Dedicated to the creators and supporters of free
and open source software
Table of Contents
About the Author�������������������������������������������������������������������������������xiii

About the Technical Reviewer������������������������������������������������������������xv

Acknowledgments����������������������������������������������������������������������������xvii

Introduction���������������������������������������������������������������������������������������xix

Chapter 1: Installing FFmpeg���������������������������������������������������������������1


FFmpeg for Microsoft Windows Users������������������������������������������������������������������1
FFmpeg for Linux Users����������������������������������������������������������������������������������������6
FFmpeg for Apple Mac Users��������������������������������������������������������������������������������9
Summary��������������������������������������������������������������������������������������������������������������9

Chapter 2: Starting with FFmpeg��������������������������������������������������������11


ffprobe����������������������������������������������������������������������������������������������������������������12
ffplay�������������������������������������������������������������������������������������������������������������������13
ffmpeg�����������������������������������������������������������������������������������������������������������������14
Other FFmpeg End-User Programs���������������������������������������������������������������������14
Summary������������������������������������������������������������������������������������������������������������15

Chapter 3: Formats and Codecs���������������������������������������������������������17


Containers�����������������������������������������������������������������������������������������������������������17
Codecs, Encoders, and Decoders������������������������������������������������������������������������18
Demuxers and Muxers����������������������������������������������������������������������������������������19
Summary������������������������������������������������������������������������������������������������������������21

v
Table of Contents

Chapter 4: Media Containers and FFmpeg Numbering�����������������������23


Containers�����������������������������������������������������������������������������������������������������������23
Container Internals����������������������������������������������������������������������������������������������24
Input and Output Files�����������������������������������������������������������������������������������������27
Maps�������������������������������������������������������������������������������������������������������������������31
Metadata�������������������������������������������������������������������������������������������������������������35
Metadata Maps���������������������������������������������������������������������������������������������������39
Channel Maps�����������������������������������������������������������������������������������������������������41
Do Not Use the -map_channel Option�����������������������������������������������������������44
Summary������������������������������������������������������������������������������������������������������������45

Chapter 5: Format Conversion������������������������������������������������������������47


No-Brainer Conversions��������������������������������������������������������������������������������������47
Conversion Options���������������������������������������������������������������������������������������������48
Obsolete/Incorrect Options���������������������������������������������������������������������������������49
Codec Option�������������������������������������������������������������������������������������������������������49
Sample Conversion with Custom Settings����������������������������������������������������������50
Multi-pass Conversion����������������������������������������������������������������������������������������51
Conversion for Maximum Compression and Quality�������������������������������������������52
Audio Conversion������������������������������������������������������������������������������������������������55
Audio Extraction��������������������������������������������������������������������������������������������������55
Extract Stills from a Video (Video-­to-Image Conversion)������������������������������������57
Image-Conversion Settings���������������������������������������������������������������������������������59
Create Video from Images (Image-­to-Video Conversion)������������������������������������59
Create a Slideshow from Several Images�����������������������������������������������������������60
Create a GIF from a Video�����������������������������������������������������������������������������������62
APNG��������������������������������������������������������������������������������������������������������������63

vi
Table of Contents

Create a Video Using an Image and an MP3�������������������������������������������������������64


Convert Online Videos to Audio���������������������������������������������������������������������������66
Convert Text to Audio������������������������������������������������������������������������������������������68
Conversion Settings for Specific Storage Medium���������������������������������������������69
Summary������������������������������������������������������������������������������������������������������������69

Chapter 6: Editing Videos�������������������������������������������������������������������71


Resize a Video�����������������������������������������������������������������������������������������������������71
Editing Options����������������������������������������������������������������������������������������������������75
Cut a Portion of a Video���������������������������������������������������������������������������������������76
Cut Without Re-encoding������������������������������������������������������������������������������������78
Append Videos (Concatenate)�����������������������������������������������������������������������������80
Don’t Knock -codec copy������������������������������������������������������������������������������������81
Summary������������������������������������������������������������������������������������������������������������82

Chapter 7: Using FFmpeg Filters��������������������������������������������������������83


Filter Construction�����������������������������������������������������������������������������������������������83
Filter Errors���������������������������������������������������������������������������������������������������������85
Filter-Based Timeline Editing������������������������������������������������������������������������������85
Expressions in FFmpeg Filter Definitions������������������������������������������������������������86
Inset Video (Picture-in-Picture Overlay)��������������������������������������������������������������88
Split Video (Side-by-Side Overlay)����������������������������������������������������������������������90
Append Videos Using a Filter������������������������������������������������������������������������������94
Delete a Portion of a Video in the Middle������������������������������������������������������������94
Rotate a Video�����������������������������������������������������������������������������������������������������95
Flip a Video����������������������������������������������������������������������������������������������������������98
Brighten a Video (Adjust Contrast)��������������������������������������������������������������������100
Generate a Test Video����������������������������������������������������������������������������������������102

vii
Table of Contents

Remove Logo����������������������������������������������������������������������������������������������������103
Fade into Another Video (And in Audio Too)�������������������������������������������������������105
Crop a Video������������������������������������������������������������������������������������������������������107
Blur or Sharpen a Video������������������������������������������������������������������������������������109
Blur a Portion of a Video�����������������������������������������������������������������������������������110
Draw Text����������������������������������������������������������������������������������������������������������112
Draw a Box��������������������������������������������������������������������������������������������������������113
Speed Up a Video����������������������������������������������������������������������������������������������115
Slow Down a Video�������������������������������������������������������������������������������������������116
Summary����������������������������������������������������������������������������������������������������������117

Chapter 8: All About Audio���������������������������������������������������������������119


Convert from One Audio Format to Another������������������������������������������������������119
Extract Audio from a Video��������������������������������������������������������������������������������119
Convert a MIDI File to MP3 or Ogg��������������������������������������������������������������������120
Change Volume�������������������������������������������������������������������������������������������������120
Change Volume in a Video File��������������������������������������������������������������������������123
Dynamic Range Compression/Normalization����������������������������������������������������125
Channels�����������������������������������������������������������������������������������������������������������126
Swap Left and Right Channels��������������������������������������������������������������������������128
Turn Off a Channel��������������������������������������������������������������������������������������������128
Move Channel to a Separate Audio Track����������������������������������������������������������129
Fix Out-of-Phase Audio Channels���������������������������������������������������������������������130
Change Stereo to Mono�������������������������������������������������������������������������������������131
Convert Mono to Stereo������������������������������������������������������������������������������������133
Make Audio Comfortable for Headphone Listening�������������������������������������������133
Downmix 5.1 Audio to Stereo����������������������������������������������������������������������������134

viii
Table of Contents

Downmix Two Stereo Inputs to One Stereo Output�������������������������������������������134


Render a Visual Waveform of the Audio������������������������������������������������������������136
Detect Silence���������������������������������������������������������������������������������������������������138
Silence the Video����������������������������������������������������������������������������������������������138
Convert Text to Speech�������������������������������������������������������������������������������������138
Apply a Low-Pass Filter������������������������������������������������������������������������������������139
Summary����������������������������������������������������������������������������������������������������������140

Chapter 9: All About Subtitles����������������������������������������������������������141


Add Subtitles to a Video as an Extra Stream�����������������������������������������������������142
Permanently Burn Subtitles to a Video�������������������������������������������������������������143
Add a Custom Font for Displaying Subtitles of a Video�������������������������������������145
About the Substation Alpha (SSA/ASS) Subtitle Format������������������������������������146
Add Subtitle Files in Different Languages���������������������������������������������������������150
Extract Subtitles from a Video���������������������������������������������������������������������������151
Extract Subtitles from a DVD�����������������������������������������������������������������������������152
Summary����������������������������������������������������������������������������������������������������������153

Chapter 10: All About Metadata�������������������������������������������������������155


Add Album Art to MP3���������������������������������������������������������������������������������������155
Set MP3 Tags����������������������������������������������������������������������������������������������������157
Export Metadata������������������������������������������������������������������������������������������������158
Import Metadata�����������������������������������������������������������������������������������������������159
Extract Album Art����������������������������������������������������������������������������������������������160
Remove All Metadata����������������������������������������������������������������������������������������162
Set Language Metadata for Audio Streams������������������������������������������������������163
Summary����������������������������������������������������������������������������������������������������������164

ix
Table of Contents

Chapter 11: FFmpeg Tips and Tricks������������������������������������������������165


Customize the Terminal�������������������������������������������������������������������������������������165
File Manager Automation����������������������������������������������������������������������������������167
Hide the Banner������������������������������������������������������������������������������������������������170
Add an espeak Intro to Your MP3 Files�������������������������������������������������������������170
Best MP3 (MPEG 2 Audio Layer 3) Conversion Settings������������������������������������173
Colors in Hexadecimal��������������������������������������������������������������������������������������174
Colors in Literal�������������������������������������������������������������������������������������������������175
Streams Information from ffprobe��������������������������������������������������������������������177
Extract Non-pixelated Images from a Video������������������������������������������������������185
Create a Thumbnail Gallery for a Video�������������������������������������������������������������188
Record from Microphone����������������������������������������������������������������������������������192
Record from Webcam����������������������������������������������������������������������������������������194
Screen Capture�������������������������������������������������������������������������������������������������195
Render an Animated GIF on a Video������������������������������������������������������������������197
Show a Timer on the Video�������������������������������������������������������������������������������200
Create a Silent Ringtone�����������������������������������������������������������������������������������201
Create a Countdown Beep Audio�����������������������������������������������������������������������202
Generate Noise of a Certain “Color”������������������������������������������������������������������203
Create a Bleep Audio�����������������������������������������������������������������������������������������204
Add an Echo to Part of a Video��������������������������������������������������������������������������204
Reverse a Video������������������������������������������������������������������������������������������������205
Fade into Another Video Using a Transition Effect���������������������������������������������206
Create Waveform Video of Audio�����������������������������������������������������������������������208
Create a Waveform Image of Audio�������������������������������������������������������������������210
Forensic Examination of Audio (Not Really)������������������������������������������������������210
Replace a Green-Screen Background with Another Video��������������������������������212

x
Table of Contents

Turn All Colors Gray Except One������������������������������������������������������������������������213


How to Pan Across a Video��������������������������������������������������������������������������������213
Using FFmpeg with Timeline-Based Video-Editing Software����������������������������214
Make ffmpeg -version More Meaningful�����������������������������������������������������������214
Hardware Acceleration��������������������������������������������������������������������������������������216
Finis������������������������������������������������������������������������������������������������������������������218
What Next…�����������������������������������������������������������������������������������������������������220

Chapter 12: Annexures���������������������������������������������������������������������223


Annexure 1: Sample List of Codecs�������������������������������������������������������������������223
Annexure 2: Sample List of Decoders���������������������������������������������������������������234
Annexure 3: Sample List of Encoders���������������������������������������������������������������244
Annexure 4: Sample List of Filters��������������������������������������������������������������������249
Annexure 5: Sample List of Formats�����������������������������������������������������������������261

Index�������������������������������������������������������������������������������������������������271

xi
About the Author
V. Subhash is an invisible Indian writer,
programmer, and illustrator. In 2020, he
wrote one of the biggest jokebooks of all
time and then ended up with over two dozen
mostly nonfiction books including Linux
Command-­Line Tips & Tricks, CommonMark
Ready Reference, PC Hardware Explained,
Cool Electronic Projects, and How To Install
Solar. He wrote, illustrated, designed, and
produced all of his books using only open source software. Subhash has
programmed in more than a dozen languages (as varied as assembly
and Java); published software for desktop (NetCheck), mobile (Subhash
Browser & RSS Reader), and the Web (TweetsToRSS); and designed several
websites. As of 2022, he is working on a portable JavaScript-free CMS using
plain-jane PHP and SQLite. Subhash also occasionally writes for the Open
Source For You magazine and CodeProject.com.

xiii
About the Technical Reviewer
Gyan Doshi has been with the FFmpeg project as a developer and
maintainer since 2018. During this time, he has focused on FFmpeg
filters, formats, and command-line tools. From his experience in video
postproduction stages such as editing and motion graphics, Gyan has
learned how FFmpeg can be used in multimedia workflows as a valuable
addition or as a substitute for expensive tools. Aside from being engaged as
a multimedia/FFmpeg consultant, Gyan also troubleshoots FFmpeg issues
on online forums such as Stack Exchange and Reddit.
Gyan builds the official Windows binary packages of FFmpeg (ffmpeg,
ffprobe, and ffplay) and other tools (ffescape, ffeval, graph2dot, etc.)
and offers them for download from his website at www.gyan.dev.

xv
Acknowledgments
The author would like to thank:

• The publisher Apress who insisted on not using any


third-­party video in the screenshots, as the author did
in the original self-published book (FFmpeg Quick
Hacks). Most screenshots in this Apress book were
taken from the author’s own videos. The rest used
videos and images that were in the public domain
(Archive.org, Pixabay.com, and Unsplash.com). This
led to a rewrite of most of the content, and in the
process, several mistakes were eliminated.

• The technical reviewer Gyan Doshi for pointing


out several other mistakes and making valuable
suggestions.

• Creators and supporters of free and open source


projects.

• The author's family, friends, enemies and governments


without whose help and encouragement this book
would have been completed much ahead of its
deadline.

xvii
Introduction
FFmpeg is a free and open source program for editing audio and video files
from the command line. You may have already known FFmpeg as a nifty
program that can do simple conversions such as:

ffmpeg -i some-video.mov same-video.mp4


ffmpeg -i song-video.mp4 song-audio.mp3

FFmpeg is much more capable than this, but it is this intuitive interface
and support for a wide variety of formats that has won it millions of users.
The FFmpeg project was originally started by a French programmer
named Fabrice Bellard in the year 2000. It is now being developed by a
large team of open source software developers spread around the world.
This book can serve as an easy FFmpeg tutorial, hack collection, and a
ready reference. However, it is not possible for one book to cover everything
that FFmpeg can do. FFmpeg has a very huge online documentation with
which you may have to craft your commands. While this book may seem
more than enough for most users, the documentation will open up vastly
more possibilities. DO NOT avoid going through the documentation.
Before you go further into the book, you should be aware that the
FFmpeg project creates two types of software:

1. libav libraries: These are FFmpeg programming


software or “libraries” that are used by programmers
to create audio/video processing software such as
media players, browser plug-ins, and audio/video
editors. The libav libraries have been used to build
some parts of popular software such as VLC, xine,
Blender, and Kodi.

xix
Introduction

2. ffmpeg command-line program: This is the


FFmpeg end-user software that most people can
use. The ffmpeg command-line program internally
uses the libav libraries.

In this book, we will ignore the libav libraries and instead focus on the
ffmpeg command-line program.

Extra Resources for This Book


• All code snippets used in this book are available in
a plain-text file, complete with chapter and section
titles and comments. It is actually a MarkDown/
CommonMark file. You can easily convert it to
an HTML, ODT, DOCX, or PDF file. Conversion
instructions are in the text file.

• Videos of several code examples used in the book are


available in an online video playlist.

xx
Introduction

Links to these resources can be found at

• www.apress.com/9781484287002 (domain + ISBN)

• www.vsubhash.in/ffmpeg-book.html

xxi
CHAPTER 1

Installing FFmpeg
In the Introduction, I mentioned that FFmpeg was an “end-user program.”
It is actually three command-line end-user programs, or executables:

1. ffprobe

2. ffplay

3. ffmpeg

The executables for these programs are available for Linux, Mac,
Windows, and other operating systems (OSs). When you go to the FFmpeg
website (www.ffmpeg.org), you will have two download options:

• Either download pre-built FFmpeg executables to


your computer

• Or download FFmpeg source code to your computer


and build your own customized FFmpeg executables

If you are unfamiliar with building executables from source code (as
are most people), you should choose the first option.

FFmpeg for Microsoft Windows Users


The download options on the FFmpeg site for pre-built FFmpeg executables
change frequently, so this book will not be specific with instructions. Just
go to this page and navigate to one of the download sites.

https://ffmpeg.org/download.html

© V. Subhash 2023 1
V. Subhash, Quick Start Guide to FFmpeg, https://doi.org/10.1007/978-1-4842-8701-9_1
Chapter 1 Installing FFmpeg

On the selected download site, you may be presented with a dizzying


array of downloads. Spend some time reading the information given there,
and pick the most appropriate download for you.

Figure 1-1. This download page lists several download options


for FFmpeg executables. Strangely, for FFmpeg, the latest master
download is supposed to be more stable than the numbered
release version

Sometimes, there may be an essentials build and a full build. The


essentials build may be enough for most people. If you want to use certain
unusual features such as frei0r filters, you should choose the latter. As you
never know what you might need in the future, I suggest that you choose
the full build.

2
Chapter 1 Installing FFmpeg

Figure 1-2. There may be more than one “build” option for the
downloads

In the downloaded archives (zip or 7z files), you will find the


executables: ffprobe.exe, ffmpeg.exe, and ffplay.exe.

Figure 1-3. The downloaded archive file contains three EXE files.
Copy them to a folder specified in your PATH environment variable

Copy the EXE files to some folder that is already included in your
operating system’s PATH environment variable. If you copy them to a new
folder, then add the folder’s full location to the PATH variable.
If you do not do the above, you will need to type the full path of the
executable in your commands in the Command Prompt window.

3
Chapter 1 Installing FFmpeg

Before modifying the PATH environment variable, take a backup of its


value. Open the Command Prompt window and type this command.

echo %PATH% > PATH-BAK.TXT

Let us assume that you have extracted the EXE files to the folder C:\
MyInstalls\ffmpeg\bin. Launch the Command Prompt window with
Administrator privileges. Then, permanently suffix this folder’s location to
the PATH environment variable with this command.

SETX /M PATH "%PATH%;C:\MyInstalls\ffmpeg\bin"

Then, you should check whether the FFmpeg installation is accessible


from the command-line without the full path. (Do this in a Command
Prompt window with normal-user privileges.)

ffmpeg -version

If you do not modify the environment variable, then you will have to
type the full path whenever you want to use the program.

C:\MyInstalls\ffmpeg\bin\ffmpeg -version

FFmpeg is case-sensitive so do not type FFMPEG -VERSION and hope to


get a correct response. FFmpeg may have become platform-independent,
but in its heart, it still beats like a Linux program. This means that FFmpeg
will not support certain functionalities expected of native Windows/DOS
programs. For example, you cannot type command switches (arguments)
in uppercase (even if the command name can be typed in uppercase).

@ Causes error
FFMPEG -VERSION

@ Causes no error
FFMPEG -version
ffmpeg -version

4
Chapter 1 Installing FFmpeg

Almost all command-line examples in this book assume a Linux


environment. One-line commands will not require any change in
Windows.
The Windows/DOS counterpart for the Linux null device (/dev/
null) is NUL. This means that you should replace all instances of 2> /
dev/null in this book with 2> NUL. This construct is used to prevent the
commands from displaying text messages on the screen. ffmpeg outputs
all its messages to standard error, which happens to be the screen. In case
it outputs something to standard output, which also happens to be screen,
and has to be blocked, the Linux remedy is to use > /dev/null. To do the
same on your Windows computer, you will have to use > NUL instead.
In multiline commands, you will find a “\” (backslash) at the end of
each line (except the last one), as is the practice in Linux.

# For 'nix users


ffmpeg -f lavfi \
       -i "testsrc=size=320x260[out0];
           anoisesrc=amplitude=0.06:color=white[out1]" \
       -t 0:0:30 -pix_fmt yuv420p \
       test.mp4

As a Windows user, you should use a caret ( ^ ) instead of the


backslash ( \ ).

@ For Windows users


ffmpeg -f lavfi ^
       -i "testsrc=size=320x260[out0]; ^
           anoisesrc=amplitude=0.06:color=white[out1]" ^
       -t 0:0:30 -pix_fmt yuv420p ^
       test.mp4

You should avoid writing anything after the backslash or the caret.
Invisible trailing space(s) can also make a command to fail. (This happens
often with copy-pasted commands.)

5
Chapter 1 Installing FFmpeg

In a Linux bash terminal, the backslash is not required after a double-­


quotation mark has been opened, and you can continue on like that for
more lines until the quotation is closed. In a Windows cmd terminal, all
wrapping lines will have to end with a caret.

FFmpeg for Linux Users


If your Linux distribution has not installed FFmpeg by default, then use its
default software manager or package manager to do so. Beware that the
FFmpeg installed from software repositories used by Linux distributions
are usually out of date.
The download sites linked by FFmpeg.org provide the latest builds
with maximum support for external libraries. However, some Linux users
like to build their executables from source. If you have a fast machine or
a few hours to spare, start with the instructions on the FFmpeg Wiki site.
Check their source code compilation steps specific to the Linux distribution
that you use.

https://trac.ffmpeg.org/wiki/CompilationGuide

You can customize your FFmpeg build by enabling/disabling several


build options. Instead of just blindly following the wiki, spend some time
studying the configure script or its help output.

configure --help

6
Chapter 1 Installing FFmpeg

Figure 1-4. The configure script, by default, will try to autodetect


external libraries. You may have to manually enable those that are
not autodetected

In your Linux package manager app, try to search and install (dev-­
suffixed) developmental packages with similar names as the external
libraries. You may not be able to install developmental packages for all
of the libraries. But, for whatever libraries that you can install or have
them already installed, add relevant -enable options to the configure
compilation step. Here are a few:

...
--enable-chromaprint --enable-frei0r \
--enable-libbluray --enable-libbs2b --enable-libcdio \
--enable-libflite --enable-libfontconfig \

7
Chapter 1 Installing FFmpeg

--enable-libfreetype --enable-libfribidi \
--enable-libmp3lame --enable-libsmbclient \
--enable-libv4l2 --enable-libvidstab \
...

Run the FFmpeg build statement with these changes, and eventually
all three binary executable files will be created in your $HOME/bin
directory. Then, secure the copy of the documentation from the ffmpeg_
build directory so that you can read it whenever it is required.

☞ When I built FFmpeg version 5.1, I encountered some errors


with the official wiki guide. The guide uses one long stringified
command to install the FFmpeg binary executable files. This
command is a combination of several commands that downloads
the source and then configures, compiles, builds, and installs the
executable files. If the configuration and compilation commands
encounter any errors and you fix it, the command will restart the
whole drama beginning with downloading the source. You do not
have to endure that. Just continue with the configure step.

If you have an old OS where the latest FFmpeg executable does not
run or cannot be compiled, go to https://johnvansickle.com/ffmpeg/
and download pre-built statically linked executables (not including
ffplay). On my old Ubuntu 10 Fiendish Frankenstein installation, I could
not run the latest FFmpeg pre-built executable nor build the source, but
these statically linked executables worked. (Even the C library is statically
linked.) That is how I was able to finish the 2020 version of this book in
the old OS.

8
Chapter 1 Installing FFmpeg

FFmpeg for Apple Mac Users


With Apple moving from Intel x86 to ARM architecture, any specific
instructions will be outdated when you read it. It is best that you consult
the FFmpeg Wiki for the specific kind of Apple hardware that you
are using.

https://trac.ffmpeg.org/wiki/CompilationGuide/macOS

S
 ummary
Although originally designed as a Linux program, FFmpeg is also available
for Windows and Mac operating systems. In this chapter, you learned how
to obtain pre-built FFmpeg executables specific to your OS from the official
FFmpeg site. You also learned how to build your own customized FFmpeg
executables from source.
In the next chapter, you will learn how to start using the executables.

9
CHAPTER 2

Starting with FFmpeg


The FFmpeg project provides several end-user programs. This book will
focus on three command-line programs – ffprobe, ffplay, and ffmpeg.
You will be using ffmpeg most of the time, but ffprobe and ffplay can
help you as well. In this chapter, you will gain an introduction to all three.
All three have an annoying “feature” – they display a build-information
banner that is as big as the state of Texas. If you create the following aliases
in your $HOME/.bashrc file, then you do not have to suffer the annoyance.

alias ffmpeg='ffmpeg -hide_banner '


alias ffplay='ffplay -hide_banner -autoexit '
alias ffprobe='ffprobe -hide_banner  '

☞ The -autoexit option for the ffplay command ensures


that it makes a clean exit after playing a file instead of sticking
around like it has crashed.

Some command examples in this book will have the suffixes 2>
/dev/null or > /dev/null. Such recourses were necessary to prevent
information clutter.

© V. Subhash 2023 11
V. Subhash, Quick Start Guide to FFmpeg, https://doi.org/10.1007/978-1-4842-8701-9_2
Chapter 2 Starting with FFmpeg

ffprobe
If you want to find out useful information about an audio or video file, you
need to use ffmpeg with the -i option. With ffprobe, you do not need
the option.

ffmpeg -i tada.wav
ffprobe tada.wav

Figure 2-1. ffprobe  can be used to display information about what


is contained in a multimedia file

ffprobe can reveal much more information than this if you use
the -show_streams option. You can filter the output of this command for
use in your shell scripts. In a later chapter, you will find a sample output of
this command.

ffprobe -show_streams somefile.mp4

12
Chapter 2 Starting with FFmpeg

ffplay
If you want to play a video file directly from the command line, just type
ffplay and the file name. ffplay is a tiny media player. It does not have
a context menu system or other interface. It responds to some keys and
mouse clicks but does nothing more.

ffplay solar.mp4

Figure 2-2. ffplay  can be used to play audio and video files

To play an audio file without the (windowed) interface, say, as an audio


notification in a shell script, you can use ffplay like this:

ffplay -autoexit -nodisp ding.wav

13
Chapter 2 Starting with FFmpeg

ffmpeg
The executables ffprobe, ffplay, and ffmpeg have several common
command-line options (arguments, switches, or parameters). You can list
most of them with the -h option.

ffmpeg -h
ffmpeg -h long
ffmpeg -h full > ffmpeg-help-full.txt

If you want to review some of the features supported by your


installation of FFmpeg, try these:

ffmpeg -formats
ffmpeg -encoders
ffmpeg -decoders
ffmpeg -codecs
ffmpeg -filters

The output of these commands will give you a good overview of


what FFmpeg can do. Sample output of these commands is available as
annexures in this book.
You can dig out more specific help information with commands such
as these:

ffmpeg -h demuxer=mp3
ffmpeg -h encoder=libmp3lame
ffmpeg -h filter=drawtext

Other FFmpeg End-User Programs


The FFmpeg project provides a few other command-line tools in addition
to the three introduced in this chapter. Their purpose and usage are
beyond the scope of this book. If you wish to do your own R&D, then you
can find their files at www.gyan.dev/ffmpeg/builds/#tools.

14
Chapter 2 Starting with FFmpeg

Summary
In this chapter, you gained an introduction to the three FFmpeg
executables. Before venturing into what FFmpeg can do for you, you need
to learn a few things about multimedia formats and codecs. The next
chapter will help you with that.

15
CHAPTER 3

Formats and Codecs


An MP3 audio file can be identified by its “.mp3” file extension. Similarly,
an MP4 video file can be identified by the “.mp4” extension. The file
extensions of multimedia files do not provide any kind of surety about
the format. Even the format name is merely a notion. If you need to
process audio and video content, you need to go beyond file extensions.
You need to be familiar with multimedia concepts such as containers,
codecs, encoders, and decoders. In this chapter, you will gain some basic
information about all that and more.

Containers
Multimedia files such as MP4s or MP3s are just containers – containers
for some audio and/or video content. An MP4 file is a container for some
video content written using the H.264 codec and some audio content
written using the AAC codec. It need not be like that for all MP4 files. Some
MP4 files may have their video content written using the Xvid codec and
the audio content written using the MP3 codec. Similarly, AVI, MOV WMV,
and 3GP are popular containers for audio/video content. Codecs can differ
from file to file even if their extensions are the same. A multimedia file may
have the wrong extension because of some human error. You can expect all
sorts of combinations in the wild.
When the codecs are not what is usually expected in a container, you
may encounter annoying format errors in playback devices. Sometimes,
you may be able to fix the error by simply renaming the file with the correct

© V. Subhash 2023 17
V. Subhash, Quick Start Guide to FFmpeg, https://doi.org/10.1007/978-1-4842-8701-9_3
Chapter 3 Formats and Codecs

extension. At other times, you will have to re-encode the file using codecs
supported by the device. So, what does it mean when a device says it only
supports certain “codecs”?

Codecs, Encoders, and Decoders


When audio and video recordings transitioned from analog to digital,
equipment manufacturers developed algorithms to store audio waveforms
and video frames in a scheme retrievable by computer software. Initially,
these storage schemes were proprietary, and their documentation was not
publicly available. With the rise in the popularity of digital media devices,
interoperability and open standards became necessary.
When multimedia (audio or video) content is written or stored in a
computer file, it is written in a specific retrievable format developed by the
manufacturer of the multimedia equipment. The algorithm used to read
or write multimedia content in a specific format became known as a codec
(coder-decoder). The software used for writing the content using the codec
became known as an encoder. The software used to read the written
content became known as a decoder. A camera uses an encoder chip to
store captured video. A TV uses a decoder chip to play the video from a
USB drive. On a personal computer, the logic of encoder and decoder
chips is installed as a software codec.
Raw audio or video requires a lot of space when stored on a computer
file. The multimedia industry, led by camera manufacturers and computer
companies, has developed several compression techniques to squeeze
multimedia content on to as few bytes of storage as possible. The efficiency
of the compression techniques varies. When the compression discards
some content (assuming that the human ear or the eye would not miss it)
for a dramatic decrease in the size of the file, the technique would be known
as lossy compression. When no content was discarded, the technique was
known as lossless compression. Lossless compression techniques are not
used everywhere because of the high file-space requirement.

18
Chapter 3 Formats and Codecs

To suit real-world requirements, most codecs provide options to their


algorithm so that a balance between file size reduction and detail loss
can be specified on a preset or ad hoc basis. You will do the same when
you use FFmpeg. For example, in the following command, to convert an
uncompressed audio from a microphone recording to a lossy compressed
audio format, several settings such as bitrate, number of channels, and
sampling frequency are specified.

ffmpeg -i uncompressed-stereo.wav \
       -c:a libmp3lame -b:a 128k -ac 2 -ar 44100 \
       compressed.mp3

☞ You will learn more about these settings in later chapters, but
for now just be aware that they are often required.

Demuxers and Muxers


I have been using FFmpeg for years without knowing what demuxers
and muxers were. Even now, I cannot care less. Well… maybe a little.
A demuxer is a software component that can read a multimedia input
file so that a decoder can work on it. Similarly, a muxer writes data to a
multimedia output file after it has been processed by an encoder. Between
a decoder and encoder, some processing work may be done, or it may even
pass directly to the other end. Here is all that you need to know:

• To write to a particular container format, the format’s


muxer is required.

• To read from a particular container format, a demuxer


is required.

19
Chapter 3 Formats and Codecs

Figure 3-1. This schematic shows how different components in


FFmpeg work together to give the output you want

For example, to read and write to the MP4 format, an MP4 demuxer
and an MP4 muxer are required. FFmpeg automatically takes care of
muxers and demuxers so that you do not have to bother with them.
However, there may come situations when you do have to explicitly
address them.

Figure 3-2. This demuxer help output provides a clue as to how to


create endlessly looping GIF animations

20
Chapter 3 Formats and Codecs

Summary
In this chapter, you learned some theoretical concepts about multimedia
formats, containers, and codecs. In the next chapter, we will delve deeper
into the container and learn how to refer to its constituents from the
command line using index numbers.

21
CHAPTER 4

Media Containers
and FFmpeg
Numbering
In the previous chapter, you learned that a multimedia file is actually a
container. On the inside, it encloses multimedia streams and metadata. In
this chapter, you will learn what streams and metadata are and how you
can access them from the command line. The sections in this chapter are
arranged for easy access and completeness. It may not be possible for you
to understand all of it on your first read. Return to this chapter a few times
to get a full understanding.

Containers
A container can have several streams. A stream could be audio, video,
subtitles, or a file attachment.
In an MP4 video file or container, you will usually find a video stream
and an audio stream. In an MP3 file, you will find an audio stream and
maybe some IDv3 tags (such as title, album, and artist) as metadata.
If you have one of those rare multi-angle DVDs, then each camera
angle will be represented by a separate video stream. Multi-language
videos will have an audio stream for each language. DVD subtitles for

© V. Subhash 2023 23
V. Subhash, Quick Start Guide to FFmpeg, https://doi.org/10.1007/978-1-4842-8701-9_4
Chapter 4 Media Containers and FFmpeg Numbering

multiple languages are represented as individual subtitle streams. MKV


files may have custom font files for displaying the subtitles. These font files
will be represented as file-attachment streams.
In an audio stream, there can be several channels. A mono audio
stream has only one channel. A stereo stream has two channels - left and
right. A DVD movie’s 7.1 surround sound stream has eight channels - front
left, front right, center left, center right, rear left, rear right, and one LFE
(low frequency effects).
FFmpeg identifies these streams, channels, and metadata using index
numbers so that you can refer to them from the command line.

Container Internals
Logically, the internals of a multimedia file look like this. A container
needs to have at least one stream. Everything else is optional. It is all
right for a video file to not have album art, subtitles, custom fonts, or tags
(global metadata), but one video stream and one audio stream are usually
expected.

Figure 4-1. Internals of a multimedia file container

24
Chapter 4 Media Containers and FFmpeg Numbering

From this logical representation, you will note that a multimedia file
container may have some global metadata and that each stream in the
container can have stream-specific metadata too.
You can use ffprobe to display these details for any multimedia file.

Figure 4-2. This is a sample  ffprobe  output for an audio file

In this ffprobe output, the global metadata for the MP3 file shows ID3
tags such as title, album, and artist. It also includes a “comment” metadata
that I added after I bought the music. The metadata for the audio stream
shows that it was encoded using the LAME encoder by the music vendor.
The album art is shown as a video stream but it has only one frame. More
importantly, you should note that FFmpeg refers to the input files and
streams using index numbers starting from 0 (zero), instead of 1 (one).
Here is another example; this one is for a video file.

25
Chapter 4 Media Containers and FFmpeg Numbering

Figure 4-3. This is a sample  ffprobe  output for a video file

What does this output say?

• The MKV file is identified as the first input file (#0).

• It has global metadata for creation time but none for


title, copyright, comments, etc.

• The first stream (#0:0) is a video stream and requires


a H.264 decoder.
• The second stream (#0:1) is an audio stream and
requires an MP3 decoder. The audio is in stereo, that is,
it has two channels.

• The third stream (#0:2) is a subtitle stream


and requires a decoder for the Substation Alpha
(SSA) format.

• The fourth stream (#0:3) is a custom font for


displaying the subtitles. It is stored as a file-­
attachment stream.

26
Chapter 4 Media Containers and FFmpeg Numbering

• The fourth stream also has some stream-specific


metadata identifying the font file’s name and
mimetype. This is important because the SSA subtitles
may refer to the font by this name.

☞ Mimetype is a more rigorous file-type definition (than file


extensions) and is usually used by websites to identify downloads to
web browsers.

Input and Output Files


An ffmpeg command can have multiple input and output files. The
following command has two input files and one output file. (For now,
ignore the line with the filter. Filters are explained in Chapter 7.)

ffmpeg -i solar.mp4 -i overlay.png \


       -filter_complex "overlay=370:260:" \
       watermarked-solar.mp4

☞ When specifying multiple input files, place options specific to


one input file on the left side of -i option. Whatever specified after
the file name applies to the next input file (-i) or (in its absence) the
next output file.

27
Chapter 4 Media Containers and FFmpeg Numbering

☞ ffmpeg can also read from streams and write to them. The
streams can be piped from/to another command and also transported
over a network protocol. For more information, read the official
documentation on protocols.

A video of my solar inverter and the cover image of one of my books


are the input files. The command renders the image at 370 pixels from the
left edge and 260 pixels from the top edge of the video.

Figure 4-4. The output video is the input video with the overlaid
input image

The two input files were specified using the -i option. An MP4 video
file is input file #0 and a PNG image file is input file #1. The output file, as
is always, has been specified last.

28
Chapter 4 Media Containers and FFmpeg Numbering

Figure 4-5. The output of the command shows the index numbers
used for the input files and streams

The output of the command shows that the first stream in the first
input file is a video stream and is numbered #0:0. The second stream in
that file is an audio stream and is numbered #0:1. The first stream in the
second input file (the PNG image file) is considered as a video stream even
though it has only one (image) frame and is identified as #1:0.

29
Chapter 4 Media Containers and FFmpeg Numbering

You can refer to streams by their type. In the previous command, the
streams were as follows:

• 0:v:0 (first file’s first video stream) or 0:0 (first file’s


first stream)

• 0:a:0 (first file’s first audio stream) or 0:1 (first file’s


second stream)

• 1:v:0 (second file’s first video stream) or 1:0 (second


file’s first stream)

For this to become clear, spend some time studying the screenshot in
Figure 4-5.
Suppose that a multi-language DVD video file had one video stream
and two audio language streams. The streams can be referred as follows:

• 0:v:0 (first video stream) or 0:0 (first stream)

• 0:a:0 (first audio stream) or 0:1 (second stream)

• 0:a:1 (second audio stream) or 0:2 (third stream)

☞ In the output of ffmpeg commands, you will encounter index


numbers ignoring the stream type. To make your FFmpeg commands
somewhat fail-safe, I recommend that you refer to streams by their
type instead.

As you may have guessed, the stream-type identifier for video is v and
a for audio. There are others as given in Table 4-1.

30
Chapter 4 Media Containers and FFmpeg Numbering

Table 4-1. Stream-type identifiers


Stream type Identifier

Audio a
Video v
Video (not images) V
Subtitles s
File attachments t
Data d

After displaying the information about the input files and streams,
ffmpeg will list how the input streams will be processed and mapped to
intermediate and final streams. Then, it will list the final output files and
their streams. In a bash terminal, you can press the key combination Ctrl+S
if you wish to pause and study this information. Otherwise, all of this
information will quickly flash past your terminal as ffmpeg will then post a
huge log of informational, warning, and error messages as it performs the
actual processing of the input data.

Maps
With multiple input files, FFmpeg will use an internal logic to choose
which input streams will end up in the output file. To override that, you
can use the -map option. Maps enable you to specify your own selection
and order of streams for the output file. You can specify stream mapping in
several ways:

-map InputFileIndex
all streams in file with specified index

For example, -map 1 means


all streams in second (1) input file.
31
Another random document with
no related content on Scribd:
125 f. Ovid, Tristia, i. 8. 41 f.,

‘Et tua sunt silicis circum praecordia venae,


Et rigidum ferri semina pectus habet.’

159 f. It is difficult to construe this couplet satisfactorily, and the


reading ‘Est’ seems quite as good as ‘Et.’ The Glasgow MS. has ‘Et
status’ erased, as if for correction.
163 ff. Cp. Mirour, 8921 ff.
167. The original reading seems to have been ‘grassantur,’ for
which S gives ‘grossantur’ (‘o’ written over erasure), and CG
‘crassantur,’ also by correction.
182 ff. I have no record of the readings of H₂ in this passage, but
I have no doubt that it agrees with EHT.
184. No record of the reading of T.
186. abhorret: apparently subjunctive; so we have ‘adhero’ for
‘adhereo,’ l. 1296.
192. habere modum: a first-hand correction in S, whereas the
others in ll. 182-192 are in a different hand.
194. caput ancille: an allusion to the form in which Satan is
supposed to have appeared in the garden of Eden.
243. specialis, subst., ‘a friend.’
255 f. Cp. Ovid, Ars Amat. ii. 201 f.,

‘Riserit, adride; si flebit, flere memento:


Imponat leges vultibus illa tuis.’

In adapting the couplet to his purpose our author has contrived to


make it unintelligible.
265. Fuluus ... talus: referring to the gilded spur of knighthood;
gold is ‘metallum fuluum.’
273 f. Cp. Tristia, v. 13. 27 f.
315 f. Cp. Metam. i. 144 f.
323 f. Cp. Ars Amat. i. 761 f.
327 f. Fasti, iv. 717 f. The application belongs to our author.
331 f. Cp. Ovid, Tristia, i. 9. 5 f.
334. Ars Amat. iii. 436.
340. Cp. Tristia, i. 8. 8.
347. Cp. Metam. i. 141.
349. cumque, for ‘cum’: cp. ii. 302, &c., and l. 872, below.
361 ff. Cp. Mirour, 26590 ff.
372. Talis enim, ‘such, indeed,’: for this use of ‘enim’ cp. vi. 740.
375 f. From Neckam, De Vita Monachorum, p. 177.
379-383. Taken with slight change from De Vita Monachorum, pp.
183 f.
387. De Vita Monachorum, p. 195.
389-392. Taken with slight change from De Vita Monachorum, p.
197, and so also 395 f.
417-420. De Vita Monachorum, p. 196.
437 f. De Vita Monachorum, p. 196.
440. ne sit, for ‘ne non sit.’
441 f. De Vita Monachorum, p. 189.
459 f. Cp. Ovid, Ars Amat. iii. 65 f.
463 f. Cp. Tristia, v. 10. 5 f., ‘Stare putes, adeo procedunt
tempora tarde,’ &c. The couplet has neither sense nor
appropriateness as given here.
465 f. Pont. ii. 2. 37 f.
484. Numquid, for ‘Nonne’: cp. l. 892 and note on v. 280.
485 f. Ars Amat. iii. 119 f.,
‘Quae nunc sub Phoebo ducibusque Palatia
fulgent,
Quid nisi araturis pascua bubus erant?’

‘Qui’ is evidently a mistake for ‘Que.’


489 f. Fasti, i. 203 f.
499-504. From De Vita Monachorum, p. 181.
509 f. Cp. Mirour, 26605 ff. and Conf. Amantis, Prol. 910 ff.
519. This seems to be dependent on ‘noscat’ in the line above.
The indicative in dependent question is quite usual, though not
invariably found: cp. l. 516, where subjunctive and indicative are
combined.
574. consequeretur eum, ‘should follow him,’ i.e. should be
subject to man.
599. Arboribusque sitis. There must be something wrong here,
but the variant given by D does not help us.
619. Nonne, used for ‘Num’: cp. v. 731.
639 ff. This quotation from Gregory appears also in the Mirour de
l’Omme, 26869 ff., and the Confessio Amantis, Prol. 945 ff.
645. minor est mundus homo, ‘man is a microcosm’: cp. Mirour,
26929 ff.
647 ff. Mirour, 26953 ff.
684. The Glasgow MS. has ‘queris’ written over an erasure.
685-694. From Neckam, De Vita Monachorum, pp. 197 f.
699-708. With slight changes from De Vita Monachorum, pp. 193
f.
793. nuper to be taken with ‘auaricia,’ ‘the avarice of former
times’; ‘modo’ with ‘prestat.’
872. Cumque, for ‘Cum’: cp. l. 349.
892. Numquid, for ‘Nonne’: cp. l. 484, and see note on v. 280. For
the idea cp. Mirour, 1784 ff. It is originally from Augustine.
909 f. From De Vita Monachorum, p. 178.
911-918. From De Vita Monachorum, p. 179, with slight
variations.
919-924. De Vita Monachorum, p. 180.
921. The reading ‘nostre,’ though it has small authority, is
necessary to the sense and is given in the original passage.
929-932. De Vita Monachorum, p. 180.
955 f. Cp. Mirour, 11404 ff., where the often-quoted lines of
Helinand’s Vers de Mort are given.
990. habet ... habitare, used perhaps for the future, ‘will inhabit’:
so ‘habet torquere,’ l. 1047. On the other hand in l. 1148 ‘habent regi’
means ‘must be guided,’ and the same meaning of ‘must’ or ‘ought’
may be applied to all the passages.
1067. Thetis, used for ‘water’ or ‘sea’: cp. v. 812. All the copies
here give ‘thetis’ (or ‘Thetis’) except D, which cannot be depended
on to reproduce the original form in a case like this. On the other
hand in the Cronica Tripertita, i. 80, S and H have ‘tetis.’
1079. furor breuis, ira set: the words are suggested by the
common expression ‘ira furor breuis,’ but the sense is different. This
is frequently the case with our author’s borrowings, e.g. v. 213, vi.
101.
1095. vix si: cp. vi. 1330; but perhaps ‘vix sit’ is the true reading
here.
1106. Quam prius, as usual, for ‘prius quam’: cp. i. 1944.
1148. habent: see note on l. 990.
1185. Que: the antecedent must be ‘virtuti,’ in the next line: ‘solet’
is of course for ‘solebat’; see note on i. 492.
1215. tueri: apparently passive.
1240. deficit vnde sciam, ‘I do not know.’
1305 f. ‘Because justice has departed, therefore peace, who is
joined with her, is also gone.’ The reference here and in the next
lines is to the Psalms, lxxxiv. 11.
1342. An allusion apparently to the debasement of the coinage.
The reading ‘suum’ in G is over an erasure.
1344. Nobile que genuit, ‘she who produced the noble,’ i.e. the
gold coin of that name, called so originally because of its purity.
1356. sine lege fera: for this kind of play upon words cp. iv. 128,
215, 243, 509, &c.
1409 ff. It may be noted that the Harleian MS. is defective for ll.
1399-1466. Its readings here would probably agree with those of
EDL, &c. SCG have the text written over erasure.
1436. Exiguo ... tempore: for the ablative cp. i. 1568.
1455 f. It is the galled horse that winces at the load; that which is
sound feels no hurt. Thus, if the reader is not guilty of the faults
spoken of, he will pass untouched by the reproof.
1470. ‘Vox populi, vox dei’: a sentiment repeated by our author in
various forms; cp. note on iii. Prol. 11.
1479 ff. These last three lines are over erasure in SCHG. They
seem to have been substituted for the original couplet in order to
point more clearly the moral of the Cronica Tripertita, which is
intended for a practical illustration of the divine punishment of sin.
Explicit, &c. It will be seen that in these later years Gower has
almost brought himself to believe that the events of the earlier part of
the reign were intended for a special warning to the youthful king,
whom he conceives as having then already begun a course of
tyrannical government. At the time, however, our author acquitted
him of all responsibility, on account of his youth.
11 ff. The swan was used as a badge by the duke of Gloucester
and also (perhaps not till after his death) by Henry of Lancaster. For
the horse and the bear as cognizances of Arundel and Warwick see
Annales Ricardi II (Rolls Series, 28. 3), p. 206.

CRONICA TRIPERTITA
1. Ista tripertita, &c. These seven lines must be regarded as a
metrical preface to the Chronicle which follows. In the Hatton MS.
these lines with their marginal note are placed before the prose of
the preceding page (which is given in a somewhat different form)
and entitled ‘Prologus.’
Prima Pars
1. Take the first letter of ‘mundus’ and add to it C three times
repeated and six periods of five years, plus ten times five and seven.
The date thus indicated is MCCC + 30 + 57, i.e. 1387. For a similar
mode of expression cp. Richard of Maidstone’s poem on the
Reconciliation of Richard II (Rolls Series, 14. 1),

‘M. cape, ter quoque C. deciesque novem, duo


iunge.’

4-12. These lines are written over an erasure in SCHG. The


original version of them is not extant, so far as I am aware.
51. Penna coronata. This, as the margin tells us, is the Earl
Marshall, that is Thomas Mowbray, earl of Nottingham, afterwards
duke of Norfolk.
52. Qui gerit S: the earl of Derby, from whose badge of S,
standing probably for ‘Soverein,’ came the device of the well-known
collar of SS. His tomb has the word ‘Soverayne’ repeated several
times on the canopy.
55. aquilonica luna, ‘the northern moon,’ that is, the earl of
Northumberland. The variation of the text in the Harleian MS., written
over an erasure, arises no doubt from the later disagreement
between Henry IV and Northumberland.
58. Troie, i.e. London.
65. The earl of Oxford, lately created duke of Ireland, whose
badge was a boar’s head, was Chief Justice of Chester in this year,
and there raised forces for the king, with the assistance of Thomas
Molyneux, Constable of Chester, ‘cuius nutum tota illa provincia
expectabat,’ Walsingham, ii. p. 167 (Rolls Series, 28. 2).
80. Tetis: see note on Vox Clamantis, vii. 1067: a parte means
apparently ‘on one side,’ or perhaps ‘on the side of the victors.’
The place where this affair happened is not very well described
by the authorities, but it seems clear that the first attempt of the earl
of Oxford (or duke of Ireland) to cross the river was made at Radcot
(Knighton, Rolls Series, ii. 253). Here he found the bridge partly
broken, so that one horseman only could cross it at a time, and
guarded by men-at-arms and archers set there by the earl of Derby.
At the same time he was threatened with attack by the earl of Derby
himself on the one side and the duke of Gloucester on the other,
both apparently on the northern bank of the river. Walsingham says
that he went on to another bridge, and, finding this also guarded,
plunged in on horseback and escaped by swimming over the river.
Knighton gives us to understand that he was prevented by the
appearance of the duke of Gloucester’s force from making his way
along the northern bank, and at once plunged in and swam the
stream, ‘et sic mirabili ausu evasit ab eis.’ Walsingham adds that he
was not pursued, because darkness had come on (it was nearly the
shortest day of the year) and they did not know the country. This
chronicler does not mention Radcot Bridge, but refers to the place
vaguely as ‘iuxta Burford, prope Babbelake.’ It is impossible,
however, that either the fight, such as it was, or the escape of the
earl of Oxford can have taken place at Bablock Hythe. No doubt the
lords returned to Oxford after the affair by this ferry, which was
probably the shortest way. The earl of Oxford seems to have made
his way to London, and after an interview with the king to have
embarked at Queenborough for the Continent (Malverne, in Rolls
Series, 41. 9, p. 112).
89 ff. The marginal note speaks of the ‘castra, que ipse [Comes
Oxonie] familie sue pro signo gestanda attribuerat.’ The cognizance
referred, no doubt, to the city of Chester. The same note tells us that
the duke of Gloucester bore a fox-tail on his spear as an ensign: cp.
Harding’s Chronicle, p. 341:

‘The foxe taile he bare ay on his spere,


Where so he rode in peace or elles in warre.’

103. Noua villa Macedo, i.e. Alexander Neville: a very bad


attempt on the part of our author.
104. maledixit. The particular form of curse in this case was
translation to the see of S. Andrew, which he could not occupy
because Scotland was Clementine.
107. Hic proceres odit, &c. He is said to have especially urged
the king to take strong measures against Warwick (Malverne, p.
105).
109. de puteo Michaelis, ‘of Michael de la Pool.’ The same view
of the meaning of the name is taken in Shakspere, 2 Henry VI, iv. l.
70, by the murderer of William, duke of Suffolk, son of this Michael,
‘Pole, Pool, sir Pool, lord! Ay, kennel, puddle, sink.’
111 ff. This is Thomas Rushook, a Dominican, who was
translated from Llandaff to Chichester by the king’s special desire in
1385. He had incurred much suspicion and odium as the king’s
confessor and supposed private adviser. Walsingham says, ‘ipse sibi
conscius fugam iniit’ (ii. 172); but he certainly appeared at the bar of
Parliament and was sentenced to forfeiture of his goods (Rot. Parl.
iii. 241, Malverne, p. 156).
113. ater: alluding to his Dominican habit.
121 ff. Cp. Knighton, ii. 255 f. All the five Appellants seem to have
entered the Tower, but the three spoken of here are of course the
three leaders, referred to in l. 41 and afterwards. Knighton says that
the king invited the five to stay for the night, but only the earls of
Derby and Nottingham accepted the invitation. The fact that Gower
here assigns no political action to his hero the earl of Derby (who
was under twenty years old), but gives all the credit to the three
leaders, shows clearly that the young Henry played a very
subordinate part.
131. covnata: that is, ‘co-unata,’ meaning ‘assembled.’
133 ff. Cp. Knighton, ii. 292.
141. senecta. Burley was then fifty-six years old.
142. This evidently means that the queen interceded for him; cp.
Chronique de la Traïson, p. 9. Walsingham tells us only that the earl
of Derby tried to save Simon Burley and quarrelled with his uncle
Gloucester on the subject. Burley had been the principal negotiator
of the marriage of Richard with Anne of Bohemia.
150. Walsingham says of him that he was ‘ab antiquo fallax et
fraudulentus.’
152. Pons Aquilonis, ‘Bridgenorth.’ Beauchamp was keeper of
Bridgenorth Castle (Rot. Pat., 10 Rich. II. pt. 2. m. 15), but it does
not appear from other sources that he had the title here given him by
Gower of ‘baron Bridgenorth.’ In 1387 he was made a peer by patent
(the first instance of this) under the title of lord Beauchamp of
Kidderminster.
154. Tribulus: i.e. Nicholas Brembel (so called by Gower), called
Brembul or Brembyl by Knighton, Brambre by Walsingham and
Brembre or de Brembre in the Patent Rolls and Rolls of Parliament.
Presumably he was of Brembre (Bramber), in the county of Sussex.
He had been Mayor of London last in 1386. Knighton says of him
‘quem saepius rex fecerat maiorem praeter et contra voluntatem
multorum ciuium’ (ii. 272), and Walsingham declares that he had
planned a proscription of his opponents, with a view to making
himself absolute ruler of London with the title of duke (ii. 174).
158 f. Though he was a knight, he was not dignified with the
nobler form of execution, being a citizen of London.
162. Cornubiensis: Sir Robert Tresilian, Chief Justice.
172. falsa sigilla: that is, the seals set by the judges to the
questions and replies submitted to them at Nottingham. ‘In quorum
omnium testimonium Iusticiarii et Serviens predicti sigilla sua
presentibus apposuerunt’ (Rot. Parl. iii. 233; cp. Knighton, ii. 237).
They all pleaded that they had set their seals to these replies under
the influence of threats from the archbishop of York, the duke of
Ireland, and the earl of Suffolk.
173. magis ansam, ‘or rather a handle’ (i.e. a pretext). The
reading of the MSS. is doubtful (S apparently ‘ausam,’ but with a
stop after ‘regi’). The form of expression is not unusual with our
author.
174 f. ‘There was no punishment which would have been
sufficient,’ &c.
176. ficta pietate: that is, what our author in the Conf. Amantis
calls ‘pite feigned,’ i.e. false or misplaced clemency.
176 ff. Knighton says that the queen interceded for them with the
prelates (ii. 295). For the intervention of the prelates see Rot. Parl. iii.
241.
178 f. For the terms of their exile see Rot. Parl. iii. 244, Knighton,
ii. 295 f.
183. The sense of the preceding negative seems to be extended
to this line also.
188 ff. I do not know of any other authority for this expulsion of
friars.
200. cantus: apparently genitive in spite of the metre; so
‘ducatus,’ iii. 117, ‘excercitus,’ ‘luxus,’ Vox Clamantis, i. 609, vi. 1224.
215. hirundo: a reference to the name Arundel.

Secunda Pars
There is an interval of nearly ten years between the first and the
second part of the Chronicle. Our author proceeds to the events of
1397. He assumes that the king carried out a long-meditated plan of
vengeance, cp. ll. 23 ff., but this was of course an after-thought by
way of accounting for what happened.
15. A pardon was granted to all three in the Parliament of 1387-
88, ‘par estatut’ (see Rot. Parl. iii. 350), and a special charter of
pardon was granted to the earl of Arundel at Windsor, April 30, 1394
(Rot. Parl. iii. 351; cp. Ann. Ric. II, p. 211). See below, ll. 259 f.,
where the charters of pardon are said to have been procured by
archbishop Arundel who was then Chancellor. It seems to be implied
that the other two had similar charters, but nothing is said of this in
the Rolls of Parliament; cp. Eulog. Hist. iii. 374.
56. Cp. Ann. Ric. II, p. 202 (Rolls Series, 28. 3) ‘iurans suo solito
iuramento, per sanctum Iohannem Baptistam, quod nihil mali
pateretur in corpore, si se pacifice reddere voluisset.’
69 f. In the Annales Ricardi II it is definitely stated that Warwick
came to the king’s banquet and was arrested after it (p. 202).
According to Gower’s account there was no banquet at all, and
Gloucester was arrested before Warwick; and this agrees with the
accounts given in the Chronique de la Traïson, p. 9, and by
Froissart, vol. xvi. p. 73 (ed. Lettenhove).
85 ff. From this account we should gather that the king officially
announced the death of the duke of Gloucester to parliament before
it had occurred; but this was not so. Parliament met on Sept. 17, and
on Sept. 21 a writ was sent in the king’s name to Calais, ordering the
earl of Nottingham to produce his prisoner. This was replied to,
under date Sept. 24, with the announcement that he was dead (Rot.
Parl. iii. 378). It is certain, however, that a report of the duke of
Gloucester’s death was circulated and generally believed in the
month of August, and equally certain that this was done with the
connivance of the king, who probably wished to try what effect the
news would produce upon the public mind. Sir William Rickhill, the
justice who was sent over to extract a confession from the duke of
Gloucester, received on Sept. 5 a commission from the king to
proceed to Calais, no purpose stated, the date of the commission
being Aug. 17. On arrival he was presented by the earl of
Nottingham with another commission from the king, also with date
Aug. 17, directing him to examine the duke of Gloucester. He
expressed surprise, saying that the duke was dead and that his
death had been ‘notified’ to the people both at Calais and in
England. On the next day he saw the duke and received his so-
called confession (Rot. Parl. iii. 431). When this confession was
communicated to parliament, the date of it was suppressed, and
things were so arranged as to favour the opinion that the interview
with Rickhill took place between the 17th and 25th of August, the
latter being the accepted date of Gloucester’s death; cp. the article
by Mr. James Tait in the Dict. of National Biography, vol. lvi. pp. 157
f.
It is probable enough that the duke of Gloucester was still living
when parliament met, as Gower seems to imply. Unfortunately John
Halle, who confessed that he was present at the murder of the duke
(Rot. Parl. iii. 453), gave no precise date. The statement of Gower
that the king waited until he had secured his condemnation, may
mean only that he satisfied himself of the temper of Parliament
before taking the final and irrevocable step.
101 ff. The body seems first to have been laid in the Priory of
Bermondsey: then it was buried by Richard’s command in
Westminster Abbey, but apart from the royal burial-place. Afterwards
the body was transferred by Henry IV to the place chosen by
Gloucester himself, between the tomb of Edward the Confessor and
that of Edward III (Adam of Usk, p. 39).
121 f. For the insults levelled against the earl of Arundel see Ann.
Ric. II, p. 215, Adam of Usk, p. 13.
With regard to the events of this parliament generally, it is worth
while here to observe that Adam of Usk must certainly be regarded
as a first-hand authority and his account as a contemporary one. It
has usually been assumed that, though he says himself that he was
present at the parliament (‘In quo parliemento omni die presensium
compilator interfuit’), he actually borrowed his account of it from the
Monk of Evesham. This assumption rests entirely on the statement
of the editor of Adam of Usk’s Chronicle, that he must have written
later than 1415, a statement which is repeated without question by
Potthast, Gross, and others. It may be observed, however, that the
evidence adduced for this late date is absolutely worthless. It is
alleged first that Adam of Usk near the beginning of his Chronicle
alludes to the Lollard rising in Henry V’s reign, whereas what he
actually says is that the Lollards planned an attack on Convocation,
but were deterred by the resolute measures of the archbishop of
Canterbury, at the time of the second parliament of Henry IV, that is
the year 1401, when Convocation was engaged in an endeavour to
suppress the Lollards and the archbishop procured the execution of
William Sawtree; secondly we are told that the chronicler refers (p.
55) to the death of the dauphin Louis, which happened in 1415,
whereas actually his reference is obviously to the death of the
dauphin Charles, which took place at the beginning of the year 1402.
Mr. James Tait in the Dict. of National Biography, vol. xlviii. p. 157,
has already indicated that an earlier date than 1415 is necessary, by
his reference to p. 21 of the Chronicle, where the chronicler speaks
of Edmund earl of March as a boy not yet arrived at puberty, which
points to a date not later than 1405. It seems probable that the Monk
of Evesham had before him Adam of Usk’s journal of the parliament
of 1397, to which he made some slight additions from other sources,
introducing into his account a political colour rather more favourable
to Richard II. The close correspondence between them is confined to
the proceedings of this parliament at Westminster. It may be added
that the account given by Adam of Usk is full of graphic details which
suggest an eye-witness.
129. The pardon pleaded by the earl of Arundel had already been
revoked by parliament, therefore the plea was not accepted. From
the attempts made by the king to recover Arundel’s charter of
pardon, even after his execution (Rot. Claus. 21 Ric. II. pt 2, m. 18
d.), we may perhaps gather that some scruples were felt about the
revocation of it.
135 ff. Cp. Annales Ric. II, pp. 216 f.
155 f. Annales Ric. II, p. 219.
179 ff. Rot. Parl. iii. 380, Annales Ric. II, p. 220.
199 f. ‘Qu’il demureroit en perpetuel prison hors du Roialme en
l’isle de Man par terme de sa vie’ (Rot. Parl. iii. 380).
201 f. By the sentence upon the earl of Warwick all his property
was confiscated, but it is stated in the Annales Ric. II (p. 220) that a
promise was made that he and his wife should have honourable
maintenance from the forfeited revenues, and that this promise was
not kept. Adam of Usk says that an income of 500 marks was
granted to him and his wife, but was never paid (p. 16).
217 f. It seems impossible to construe this, and I suspect that a
line has dropped out.
230. His sentence of death was commuted for that of exile to the
isle of Jersey (Rot. Parl. iii. 382).
231 f. So also below, l. 280, our author expresses a hope for the
safe return of the archbishop of Canterbury, who came back in
company with Henry of Lancaster; cp. 330 f., where a hope is
expressed for future vengeance on the king. Yet we can hardly
suppose that this second part of the Chronicle was actually written
before the events of the third part had come to pass. All that we can
say is that the writer gives to his narrative the semblance of having
been composed as the events happened. The return of Cobham is
mentioned by him afterwards (iii. 262).
233 ff. Our author reserves the case of the archbishop to the last,
as a climax of the evil. He was actually sentenced on Sept. 25,
before the trial of the earl of Warwick (Rot. Parl. iii. 351). Sir John
Cobham, whose sentence is mentioned above, was not put on his
trial till Jan. 28, when parliament was sitting at Shrewsbury.
242. That is, the court of Rome was bribed to consent to his
translation.
243. The title of his father, who was the second earl of Arundel,
was used by him as a surname.
267 ff. This seems to mean that other private reasons were
alleged to the Pope.
280. See note on l. 231.
326 f. An allusion to the campaign of 1380.
328 f. Referring especially to the very popular naval victory of
Arundel in 1387 (Walsingham, ii. 154).
340. That is, in the twenty-first year of the reign (1397).
Tercia Pars
17. This comparison of Richard’s proceedings to the work of a
mole under the ground (see also l. 12, margin) is appropriate enough
as a description of the plot which he undoubtedly laid against the
liberties of the kingdom, but the comparison is perhaps chiefly
intended to suggest that Richard, and not Henry, was the ‘talpa ore
dei maledicta’ of prophecy (Glendower’s ‘mould-warp’), cp.
Archaeologia, xx. p. 258.
27 ff. This refers to the appointment of a committee with full
powers to deal with the petitions and other matters left unfinished in
this parliament. The committee consisted of twelve lords, of whom
six should be a quorum, and six commons, three to be a quorum:
see Rot. Parl. iii. 368, Annales Ric. II, p. 222819. The latter authority
accuses the king of altering the Rolls of Parliament ‘contra effectum
concessionis praedictae.’
35 ff. Cp. Annales Ric. II, p. 225.
47. Que non audiuit auris, &c. The same expression is used by
Adam of Usk about the king’s proceedings in this parliament at
Shrewsbury (p. 17).
49 ff. These transactions are related, but not very intelligibly, in
the continuation of the Eulogium Historiarum, iii. 378. It seems that
the king summoned the archbishop and bishops to his Council at
Nottingham, and used their influence to obtain from the city of
London and the seventeen counties adjacent acknowledgements of
guilt and payments of money to procure pardon. After this the king
ordered that the archbishops, bishops, abbots, &c., and also the
individual citizens of towns, should set their seals to blank
parchments, wherein afterwards a promise to keep the statutes of
the last parliament was inscribed, to which it was supposed that the
king intended to add acknowledgements placing the persons in
question and their property at his own disposal: cp. Monk of
Evesham, p. 147. These last are the ‘blanche-chartres’ spoken of
below called ‘blanke chartours’ in Gregory’s Chronicle, p. 101, where
the form of submission sent in by the city of London, ‘in plesauns of
the kynge and by conselle and helpe of Syr Roger Walden,
Archebischoppe of Cauntyrbury ande Syr Robert Braybroke,
Byschoppe of London,’ is given in full, pp. 98-100. See also Rot.
Parl. iii. 426, 432, where they are referred to as ‘les Remembrances
appellez Raggemans ou blanches Chartres.’
73. pharisea: that is, hypocritically submissive to the king.
77. melior: comparative for superlative; so ‘probacior,’ l. 79.
85 f. Gower attributes Henry’s exile to what was probably the true
cause, namely the king’s jealousy of his popularity and fear that he
might take the lead in opposition to the newly established arbitrary
system of government. The very occasion of the quarrel with the
duke of Norfolk, an allegation on the part of Henry that the duke of
Norfolk had warned him of danger from Richard and had said that
the king could not be trusted to keep his oaths, made it difficult to
take more summary measures against him at that moment. Indeed it
seems probable that the conversation was reported to the king with a
view to obtain a contradiction of the design imputed to him. Adam of
Usk says definitely that the king’s object in appointing the duel at
Coventry was to get rid of Henry, and that Richard had been assured
by astrologers that the duke of Norfolk would win; but that on seeing
them in the lists he was convinced that Henry would be the victor,
and therefore he broke off the duel and banished both, intending
shortly to recall the duke of Norfolk (p. 23). It is noteworthy that
Gower makes no mention whatever of the duke of Norfolk here.
128 (margin). It cannot of course be supposed that Henry
embarked at Calais. Probably he sailed from Boulogne. Froissart
says that his port of departure was Vannes in Brittany, but he
expresses some uncertainty about the matter, and his whole account
here is hopelessly inaccurate (xvii. 171, ed. Kervyn de Lettenhove).
137. nepote: that is Thomas, son of the late earl of Arundel; see l.
130, margin.
160 ff. The suggestion here that Richard foresaw the coming of
Henry and went to Ireland through fear of it, is of course absurd. At
the same time it is certain that he received warnings, and that in view
of these his expedition to Ireland was very ill-timed. The statement in
the margin, that he fatally wasted time in Ireland, is supported both
by the English annalists and by Creton. In the Annales Ric. II we
read that a week was wasted by Richard’s hesitation as to the port
from which he should sail (p. 248), and Creton says that Richard was
delayed by the treacherous advice of the duke of Aumerle, who
induced him to leave the levying of troops in Wales to the earl of
Salisbury and to embark at his leisure at Waterford (Archaeologia,
xx. 312). Nothing is said of unfavourable winds in any of these
authorities, except that Creton observes that the news of Henry’s
landing was delayed by the bad weather (p. 309). Henry landed July
4, and Richard was in Wales before the end of the month.
188. There is no authority for reading ‘sceleris’ in this line, as the
former editors have done. Presumably ‘sceleres’ is for ‘celeres,’ and
this form of spelling is found occasionally elsewhere in the MSS., as
conversely ‘ceptrum’ frequently for ‘sceptrum.’ It is not easy to
translate the line, whatever reading we may adopt. It seems to mean
‘So in their ignorance they hesitate,’ (‘few show themselves quick in
action’).
205. mundum nec abhorruit istum, ‘nor renounced this world’:
‘istum,’ as usual, for ‘hunc.’
244. Augusti mensis. Richard left Flint on Aug. 19, and arrived in
London Sept. 2 (Annales Ric. II, p. 251).
256. Humfredum natum: that is Humphrey, the young son of the
duke of Gloucester. Richard had taken him to Ireland, and on
hearing of the landing of Henry had ordered him to be confined,
together with young Henry of Lancaster, in Trim castle (Walsingham,
ii. 233).
272. transit moriens. He died apparently on the way back from
Ireland, in Anglesea according to Adam of Usk, who says that he
was poisoned (p. 28). Walsingham says that he died of ‘pestilence’
(ii. 242): cp. Annales Henrici IV, p. 321 (Rolls Series, 28. 3).
276. Cignus: apparently the young duke of Gloucester is here
meant, and it is not intended to state that he was killed by grief for
the loss of his father, but that his mother died of grief for him: cp.
Annales Henrici IV, p. 321.
286. dies Martis, Tuesday, Sept. 30. Richard’s renunciation was
made on Sept. 29 (Rot. Parl. iii. 416 ff.).
300 ff. The demise of the crown made new writs necessary, but
the same parliament met again six days later (Oct. 6).
310. verbalis ... non iudicialis. This appears to mean that the
proceedings were confined to a recital of the circumstances
connected with the deposition of Richard, and that no parliamentary
business was done until after the coronation, which took place on the
next Monday, Oct. 13.
332 ff. The threefold right is stated here by Gower in the same
way as by Chaucer:
‘O conquerour of Brutes Albioun,
Which that by lyne and free eleccioun
Ben verray kyng,’ &c.

In the margin, however, Gower places the right by conquest last,


and tempers the idea of it by the addition ‘sine sanguinis effusione.’
Henry’s challenge claimed the realm by descent through ‘right line of
blood’ (that is, apparently, setting aside descent through females, cp.
Eulog. Hist. contin. iii. 383) and by ‘that right which God of his grace
hath sent me ... to recover it’ (that is, by conquest). To these was
added the right conferred by parliamentary election. It is not at all
necessary to suppose that he relied on the legend about Edmund
Crouchback, which had been officially examined and rejected (Adam
of Usk, p. 30). His reference to Henry III may have been occasioned
only by the fact that he was himself of the same name, and would
come to the throne as Henry IV.
324. That is Oct. 13, the Translation of Edward the Confessor.
341. augit. This form is given by all the MSS.
352 ff. Rot. Parl. iii. 426.
364 ff. Rot. Parl. iii. 425.
368 ff. Rot. Parl. iii. 430 ff.
378 ff. Rot. Parl. iii. 449 ff.
384 ff. This refers to the fact that the dukes of Aumerle, Surrey,
and Exeter, the marquis of Dorset, and the earl of Gloucester, were
condemned to lose the titles of duke, marquis, and earl respectively.
The case of the earl of Salisbury was reserved for future decision by
combat with lord de Morley.
388 f. This seems clearly to imply that Bagot was eventually
pardoned, and this conclusion is confirmed by Rot. Parl. iii. 458
(overlooked by the author of Bagot’s life in the Dict. of National
Biography), where there is record of a petition presented by the
Commons for the restoration of his lands (Feb. 1401), which seems
to have been granted by the king.
394 ff. This is confirmed by Walsingham, ii. 242, and Annales
Henrici IV, p. 320.
402 f. Holland and Kent are the former dukes of Exeter and
Surrey, now earls of Huntingdon and Kent. Spenser is the former
earl of Gloucester.
417 f. Kent and Salisbury were put to death by the populace at
Cirencester, and Despenser at Bristol. The earl of Huntingdon was
captured and irregularly executed in Essex.
420 ff. For the feeling in London cp. Chronique de la Traïson, pp.
92, 93.
432 ff. The statement here is not that Richard deliberately starved
himself to death on hearing of the failure of the rising and the death
of his associates, but that he lost hope and courage and could not
eat, ‘quod vix si prandia sumit, Aut si sponte bibit vinum,’ and that he
desired the death which came to him. This is not an incredible
account, and it is fairly in accordance with the best evidence. Most of
the contemporary authorities give starvation as the cause, or one of
the causes, of death, and the account of it given in our text agrees
with that of Walsingham (ii. 245), Annales Henrici IV, p. 330, Eulog.
Hist. contin. iii. 387. The Monk of Evesham mentions this commonly
accepted story, but thinks it more probable that he was starved
involuntarily: ‘Aliter tamen dicitur et verius, quod ibidem fame
miserabiliter interiit,’ and this is also the assertion of the Percies’
proclamation (Harding’s Chronicle, ed. Ellis, p. 352). Creton says,

‘Apres le roy de ces nouvelles,


Qui ne furent bonnes ne belles,
En son cuer print de courroux tant,
Que depuis celle heure en avant
Oncques ne menga ne ne but,
Ains covint que la mort recut,
Comme ilz dient; maiz vrayement
Je ne croy pas ensement:’

and he proceeds to say that he rather believes that Richard is still


alive in prison (Archaeologia, xx. p. 408). Adam of Usk (p. 41) says

Вам также может понравиться