diff --git a/css/css.css b/css/css.css index 33fcdfe..cdfe356 100644 --- a/css/css.css +++ b/css/css.css @@ -132,90 +132,82 @@ img { margin-bottom: 18px; } - div { font-family: 'Merriweather', serif; color: white; } -button { - font: inherit; - font-family: inherit; - color: inherit; -} - -.btn { - border: 1px solid transparent; - background-color: #424242; - font-size: 1em; - line-height: 1.5em; - white-space: normal; - cursor: pointer; - padding: 8px 12px; - border-radius: 4px; - padding-left: 2.5em; - margin: 8px; - display: inline-block; - vertical-align: middle; - -webkit-transform: translateZ(0); - transform: translateZ(0); - box-shadow: 0 0 1px rgba(0, 0, 0, 0); - -webkit-backface-visibility: hidden; - backface-visibility: hidden; - -moz-osx-font-smoothing: grayscale; +.recipe { + color: white; + background-color: #383838; + padding: 14px; + padding-left: 2.8em; + font-family: "Montserrat"; + font-weight: bold; + font-size: 1.2em; + border: 1px solid black; + transition: all .5s ease-out; position: relative; - -webkit-transition-duration: 0.3s; - transition-duration: 0.3s; + width: 100%; + cursor: pointer; } -.btn:before { +.recipe:hover { + color: black; + background-color: #449d44; + border: 1px solid black; +} + +.recipe:before { content: "💫"; position: absolute; left: 1em; padding: 0 1px; - -webkit-transform: translateZ(0); - transform: translateZ(0); - -webkit-transition-duration: 0.3s; - transition-duration: 0.3s; - -webkit-transition-property: transform; - transition-property: transform; - -webkit-transition-timing-function: ease-out; - transition-timing-function: ease-out; + padding-right: 1em; } -.btn:hover:before, .btn:focus:before, .btn:active:before { - -webkit-transform: scale(1.3) translateZ(0); - transform: scale(1.3) translateZ(0); -} - -.contents-list { - color: white; - border: 1px solid black; - background-color: #383838; - padding: 14px; - font-family: "Montserrat"; - font-weight: bold; - font-size: 1em; - border:1px solid rgba(255, 255, 255, 0); - transition:all .5s ease-in-out; +.recipe:hover:before, .recipe:focus:before, .recipe:active:before { + transform: scale(1.5) translateX(0.1em); + transition: 0.5s; } .sidebar a { text-decoration: none; } +.contents-list { + color: white; + background-color: #383838; + padding: 14px; + padding-left: 2.8em; + font-family: "Montserrat"; + font-weight: bold; + font-size: 1em; + border: 1px solid black; + transition: all .5s ease-out; + position: relative; + cursor: pointer; +} + .contents-list:hover { color: black; - font-size: 1.05em; background-color: #449d44; border:1px solid black; } .contents-list:before { content: "📼"; + position: absolute; + left: 1em; + padding: 0 1px; padding-right: 1em; } +.contents-list:hover:before, .contents-list:focus:before, .contents-list:active:before { + transform: scale(1.8) translateX(0.3em); + transition: 0.5s; +} + .codeblock { font-family: monospace padding: 2px 4px; diff --git a/index.html b/index.html index 32d77f1..c981c49 100644 --- a/index.html +++ b/index.html @@ -68,9 +68,7 @@
ffmpeg -f concat -safe 0 -i mylist.txt -c copy output_file
-
+ Split one file into several smaller segments
Split file into segments
@@ -828,7 +825,7 @@ e.g.: ffmpeg -f concat -safe 0 -i mylist.txt -c copy output_file
-
+ Trim video
Trim a video without re-encoding
@@ -854,7 +851,7 @@ e.g.: ffmpeg -f concat -safe 0 -i mylist.txt -c copy output_file
-
+ Create an excerpt, starting from the beginning of the file
Excerpt from beginning
@@ -872,7 +869,7 @@ e.g.: ffmpeg -f concat -safe 0 -i mylist.txt -c copy output_file
-
+ Create a new video file with the first five seconds trimmed off the original
Excerpt to end
@@ -890,7 +887,7 @@ e.g.: ffmpeg -f concat -safe 0 -i mylist.txt -c copy output_file
-
+ Create a new video file with the final five seconds of the original
Excerpt from end
@@ -912,7 +909,7 @@ e.g.: ffmpeg -f concat -safe 0 -i mylist.txt -c copy output_fileWork with interlaced video
-
+ Upscaled, pillar-boxed HD H.264 access files from SD NTSC source
Upscaled, Pillar-boxed HD H.264 Access Files from SD NTSC source
@@ -935,7 +932,7 @@ e.g.: ffmpeg -f concat -safe 0 -i mylist.txt -c copy output_file
-
+ Deinterlace video
Deinterlace a video
@@ -969,7 +966,7 @@ e.g.: ffmpeg -f concat -safe 0 -i mylist.txt -c copy output_file
-
+ Inverse telecine
Inverse telecine a video file
@@ -999,7 +996,7 @@ e.g.: ffmpeg -f concat -safe 0 -i mylist.txt -c copy output_file
-
+ Set field order for interlaced video
Change field order of an interlaced video
@@ -1015,7 +1012,7 @@ e.g.: ffmpeg -f concat -safe 0 -i mylist.txt -c copy output_file
-
+ Identify interlacement patterns in a video file
Check video file interlacement patterns
@@ -1035,7 +1032,7 @@ e.g.: ffmpeg -f concat -safe 0 -i mylist.txt -c copy output_fileOverlay timecode or text
-
+ Create opaque centered text watermark
Create centered, transparent text watermark
@@ -1060,7 +1057,7 @@ e.g.: ffmpeg -f concat -safe 0 -i mylist.txt -c copy output_file
-
+ Overlay image watermark on video
Overlay image watermark on video
@@ -1076,7 +1073,7 @@ e.g.: ffmpeg -f concat -safe 0 -i mylist.txt -c copy output_file
-
+ Burn in timecode
Create a burnt in timecode on your image
@@ -1106,7 +1103,7 @@ e.g.: ffmpeg -f concat -safe 0 -i mylist.txt -c copy output_fileCreate thumbnails or GIFs
-
+ Export one thumbnail per video file
One thumbnail
@@ -1123,7 +1120,7 @@ e.g.: ffmpeg -f concat -safe 0 -i mylist.txt -c copy output_file
-
+ Export many thumbnails per video file
Many thumbnails
@@ -1140,7 +1137,7 @@ e.g.: ffmpeg -f concat -safe 0 -i mylist.txt -c copy output_file
-
+ Create GIF from still images
Images to GIF
@@ -1160,7 +1157,7 @@ e.g.: ffmpeg -f concat -safe 0 -i mylist.txt -c copy output_file
-
+ Create GIF from a video
Create GIF
@@ -1196,7 +1193,7 @@ e.g.: ffmpeg -f concat -safe 0 -i mylist.txt -c copy output_fileCreate a video from images
-
+ Transcode an image sequence into uncompressed 10-bit video
Transcode an image sequence into uncompressed 10-bit video
@@ -1214,7 +1211,7 @@ e.g.: ffmpeg -f concat -safe 0 -i mylist.txt -c copy output_file
-
+ Create video from image and audio
Create a video from an image and audio file.
@@ -1239,7 +1236,7 @@ e.g.: ffmpeg -f concat -safe 0 -i mylist.txt -c copy output_fileUse filters or scopes
-
+ Audio Bitscope
Creates a visualization of the bits in an audio stream
@@ -1261,7 +1258,7 @@ e.g.: ffmpeg -f concat -safe 0 -i mylist.txt -c copy output_file
-
+ Play a graphical output showing decibel levels of an input file
Plays a graphical output showing decibel levels of an input file
@@ -1289,7 +1286,7 @@ e.g.: ffmpeg -f concat -safe 0 -i mylist.txt -c copy output_file
-
+ Identify pixels out of broadcast range
Shows all pixels outside of broadcast range
@@ -1313,7 +1310,7 @@ e.g.: ffmpeg -f concat -safe 0 -i mylist.txt -c copy output_file
-
+ Vectorscope from video to screen
Plays vectorscope of video
@@ -1334,7 +1331,7 @@ e.g.: ffmpeg -f concat -safe 0 -i mylist.txt -c copy output_file
-
+ Side by Side Videos/Temporal Difference Filter
This will play two input videos side by side while also applying the temporal difference filter to them
@@ -1367,7 +1364,7 @@ e.g.: ffmpeg -f concat -safe 0 -i mylist.txt -c copy output_fileView or strip metadata
-
+ Pull specs from video file
Pull specs from video file
@@ -1385,8 +1382,8 @@ e.g.: ffmpeg -f concat -safe 0 -i mylist.txt -c copy output_file
-
-
+
+ Strip metadata
Strips metadata from video file
@@ -1407,7 +1404,7 @@ e.g.: ffmpeg -f concat -safe 0 -i mylist.txt -c copy output_filePreservation tasks
-
+ Batch processing (Mac/Linux)
Create Bash script to batch process with FFmpeg
@@ -1436,7 +1433,7 @@ e.g.: ffmpeg -f concat -safe 0 -i mylist.txt -c copy output_file
-
+ Batch processing (Windows)
Create PowerShell script to batch process with FFmpeg
@@ -1469,7 +1466,7 @@ ffmpeg -i $file -map 0 -c copy $output
-
+ Create MD5 checksums (video frames)
Create MD5 checksums (video frames)
@@ -1487,7 +1484,7 @@ ffmpeg -i $file -map 0 -c copy $output
-
+ Create MD5 checksums (audio samples)
Create MD5 checksums (audio samples)
@@ -1512,7 +1509,7 @@ ffmpeg -i $file -map 0 -c copy $output
-
+ QCTools report (with audio)
Creates a QCTools report
@@ -1536,7 +1533,7 @@ ffmpeg -i $file -map 0 -c copy $output
-
+ QCTools report (no audio)
Creates a QCTools report
@@ -1560,7 +1557,7 @@ ffmpeg -i $file -map 0 -c copy $output
-
+ Check FFV1 fixity
Check FFV1 Version 3 fixity
@@ -1578,7 +1575,7 @@ ffmpeg -i $file -map 0 -c copy $output
-
+ Read/Extract EIA-608 Closed Captioning
Read/Extract EIA-608 (Line 21) closed captioning
@@ -1606,7 +1603,7 @@ ffmpeg -i $file -map 0 -c copy $output
Generate test files
-
+ Make a mandelbrot test pattern video
Makes a mandelbrot test pattern video
@@ -1623,7 +1620,7 @@ ffmpeg -i $file -map 0 -c copy $output
-
+ Make a SMPTE bars test pattern video
Makes a SMPTE bars test pattern video
@@ -1640,7 +1637,7 @@ ffmpeg -i $file -map 0 -c copy $output
-
+ Make a test pattern video
Make a test pattern video
@@ -1658,7 +1655,7 @@ ffmpeg -i $file -map 0 -c copy $output
-
+ Play HD SMPTE bars
Play HD SMPTE bars
@@ -1673,7 +1670,7 @@ ffmpeg -i $file -map 0 -c copy $output
-
+ Play VGA SMPTE bars
Play VGA SMPTE bars
@@ -1688,7 +1685,7 @@ ffmpeg -i $file -map 0 -c copy $output
-
+ Generate a sine wave test audio file
Sine wave
@@ -1705,7 +1702,7 @@ ffmpeg -i $file -map 0 -c copy $output
-
+ SMPTE bars + Sine wave audio
SMPTE bars + Sine wave audio
@@ -1726,7 +1723,7 @@ ffmpeg -i $file -map 0 -c copy $output
-
+ Make a broken file
Makes a broken test file
@@ -1747,7 +1744,7 @@ ffmpeg -i $file -map 0 -c copy $output
Use OCR
-
+ Play video with OCR
Plays video with OCR on top
@@ -1770,7 +1767,7 @@ ffmpeg -i $file -map 0 -c copy $output
-
+ Export OCR from video to screen
Exports OCR data to screen
@@ -1791,7 +1788,7 @@ ffmpeg -i $file -map 0 -c copy $output
Compare perceptual similarity of videos
-
+ Compare Video Fingerprints
Compare two video files for content similarity using perceptual hashing
@@ -1808,7 +1805,7 @@ ffmpeg -i $file -map 0 -c copy $output
-
+ Generate Video Fingerprint
Generate a perceptual hash for an input video file
@@ -1828,7 +1825,7 @@ ffmpeg -i $file -map 0 -c copy $output
Other
-
+ Play an image sequence
Play an image sequence
@@ -1849,7 +1846,7 @@ ffmpeg -i $file -map 0 -c copy $output
-
+ Split audio and video tracks
Split audio and video tracks
@@ -1867,7 +1864,7 @@ ffmpeg -i $file -map 0 -c copy $output
-
+ Flip video image
Flip the video image horizontally and/or vertically
@@ -1884,7 +1881,7 @@ ffmpeg -i $file -map 0 -c copy $output
-
+ Create ISO files for DVD access
Create ISO files for DVD access
@@ -1902,7 +1899,7 @@ ffmpeg -i $file -map 0 -c copy $output
-
+ CSV with timecodes and YDIF
Exports CSV for scene detection using YDIF
@@ -1922,7 +1919,7 @@ ffmpeg -i $file -map 0 -c copy $output
-
+ Cover head switching noise
Cover head switching noise
@@ -1946,47 +1943,47 @@ ffmpeg -i $file -map 0 -c copy $output
-
-
- Record and live-stream simultaneously
-
- ffmpeg -re -i ${INPUTFILE} -map 0 -flags +global_header -vf scale="1280:-1,format=yuv420p" -pix_fmt yuv420p -level 3.1 -vsync passthrough -crf 26 -g 50 -bufsize 3500k -maxrate 1800k -c:v libx264 -c:a aac -b:a 128000 -r:a 44100 -ac 2 -t ${STREAMDURATION} -f tee "[movflags=+faststart]${TARGETFILE}|[f=flv]${STREAMTARGET}"
- I use this script to stream to a RTMP target and record the stream locally as .mp4 with only one ffmpeg-instance.
- As input, I use bmdcapture
which is piped to ffmpeg. But it can also be used with a static videofile as input.
- The input will be scaled to 1280px width, maintaining height. Also the stream will stop after a given time (see -t
option.)
- Notes
-
- - I recommend to use this inside a shell script - then you can define the variables
${INPUTFILE}
, ${STREAMDURATION}
, ${TARGETFILE}
, and ${STREAMTARGET}
.
- - This is in daily use to live-stream a real-world TV show. No errors for nearly 4 years. Some parameters were found by trial-and-error or empiric testing. So suggestions/questions are welcome.
-
-
- - ffmpeg
- starts the command
- - -re
- Read input at native framerate
- - -i input.mov
- The input file. Can also be a
-
to use STDIN if you pipe in from webcam or SDI.
- - -map 0
- map ALL streams from input file to output
- - -flags +global_header
- Don't place extra data in every keyframe
- - -vf scale="1280:-1"
- Scale to 1280 width, maintain aspect ratio.
- - -pix_fmt yuv420p
- convert to 4:2:0 chroma subsampling scheme
- - -level 3.1
- H264 Level (defines some thresholds for bitrate)
- - -vsync passthrough
- Each frame is passed with its timestamp from the demuxer to the muxer.
- - -crf 26
- Constant rate factor - basically the quality
- - -g 50
- GOP size.
- - -bufsize 3500k
- Ratecontrol buffer size (~ maxrate x2)
- - -maxrate 1800k
- Maximum bit rate
- - -c:v libx264
- encode output video stream as H.264
- - -c:a aac
- encode output audio stream as AAC
- - -b:a 128000
- The audio bitrate
- - -r:a 44100
- The audio samplerate
- - -ac 2
- Two audio channels
- - -t ${STREAMDURATION}
- Time (in seconds) after which the stream should automatically end.
- - -f tee
- Use multiple outputs. Outputs defined below.
- - "[movflags=+faststart]target-file.mp4|[f=flv]rtmp://stream-url/stream-id"
- The outputs, separated by a pipe (|). The first is the local file, the second is the live stream. Options for each target are given in square brackets before the target.
-
-
+ Record and live-stream simultaneously
+
+ Record and live-stream simultaneously
+
+ ffmpeg -re -i ${INPUTFILE} -map 0 -flags +global_header -vf scale="1280:-1,format=yuv420p" -pix_fmt yuv420p -level 3.1 -vsync passthrough -crf 26 -g 50 -bufsize 3500k -maxrate 1800k -c:v libx264 -c:a aac -b:a 128000 -r:a 44100 -ac 2 -t ${STREAMDURATION} -f tee "[movflags=+faststart]${TARGETFILE}|[f=flv]${STREAMTARGET}"
+ I use this script to stream to a RTMP target and record the stream locally as .mp4 with only one ffmpeg-instance.
+ As input, I use bmdcapture
which is piped to ffmpeg. But it can also be used with a static videofile as input.
+ The input will be scaled to 1280px width, maintaining height. Also the stream will stop after a given time (see -t
option.)
+ Notes
+
+ - I recommend to use this inside a shell script - then you can define the variables
${INPUTFILE}
, ${STREAMDURATION}
, ${TARGETFILE}
, and ${STREAMTARGET}
.
+ - This is in daily use to live-stream a real-world TV show. No errors for nearly 4 years. Some parameters were found by trial-and-error or empiric testing. So suggestions/questions are welcome.
+
+
+ - ffmpeg
- starts the command
+ - -re
- Read input at native framerate
+ - -i input.mov
- The input file. Can also be a
-
to use STDIN if you pipe in from webcam or SDI.
+ - -map 0
- map ALL streams from input file to output
+ - -flags +global_header
- Don't place extra data in every keyframe
+ - -vf scale="1280:-1"
- Scale to 1280 width, maintain aspect ratio.
+ - -pix_fmt yuv420p
- convert to 4:2:0 chroma subsampling scheme
+ - -level 3.1
- H264 Level (defines some thresholds for bitrate)
+ - -vsync passthrough
- Each frame is passed with its timestamp from the demuxer to the muxer.
+ - -crf 26
- Constant rate factor - basically the quality
+ - -g 50
- GOP size.
+ - -bufsize 3500k
- Ratecontrol buffer size (~ maxrate x2)
+ - -maxrate 1800k
- Maximum bit rate
+ - -c:v libx264
- encode output video stream as H.264
+ - -c:a aac
- encode output audio stream as AAC
+ - -b:a 128000
- The audio bitrate
+ - -r:a 44100
- The audio samplerate
+ - -ac 2
- Two audio channels
+ - -t ${STREAMDURATION}
- Time (in seconds) after which the stream should automatically end.
+ - -f tee
- Use multiple outputs. Outputs defined below.
+ - "[movflags=+faststart]target-file.mp4|[f=flv]rtmp://stream-url/stream-id"
- The outputs, separated by a pipe (|). The first is the local file, the second is the live stream. Options for each target are given in square brackets before the target.
+
+
-
+ View FFmpeg subprogram information
View information about a specific decoder, encoder, demuxer, muxer, or filter
@@ -2012,7 +2009,7 @@ ffmpeg -i $file -map 0 -c copy $output
-