Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
138 commits
Select commit Hold shift + click to select a range
5e319c1
created a spanish file
jprincipesalazar Dec 7, 2023
e647094
translation
jprincipesalazar Dec 8, 2023
c165d43
translation
jprincipesalazar Dec 8, 2023
edc14a7
css linked
jprincipesalazar Dec 8, 2023
a5d4808
css linked correctly
jprincipesalazar Dec 8, 2023
c139a2a
html comment
jprincipesalazar Dec 8, 2023
2a43a66
Update index_es.html
jprincipesalazar Dec 14, 2023
9518b4c
Update index_es.html
jprincipesalazar Dec 14, 2023
aeec0ca
Update index_es.html
jprincipesalazar Dec 14, 2023
da0ead0
Update index_es.html
jadelgadillo2 Dec 14, 2023
8be7164
Update index_es.html
jprincipesalazar Dec 14, 2023
0dd21ee
Update index_es.html
jprincipesalazar Dec 14, 2023
a6e3bf6
deleted img file from ffmprovisr spanish
jprincipesalazar Dec 14, 2023
9c874d1
Update index_es.html
jprincipesalazar Dec 14, 2023
5e24e14
Update .DS_Store
jprincipesalazar Dec 17, 2023
d77a6cb
translation and trying to fix recipes.txt
jprincipesalazar Dec 18, 2023
fece4f3
Merge branch 'jprincipesalazar:gh-pages' into gh-pages
jadelgadillo2 Dec 18, 2023
e99b2ec
Update index_es.html
jadelgadillo2 Dec 18, 2023
81439fc
Update index_es.html
jadelgadillo2 Dec 18, 2023
6d758ca
Update index_es.html
jadelgadillo2 Dec 18, 2023
d9d2555
Update index_es.html
jadelgadillo2 Dec 18, 2023
3770460
Update index_es.html
jadelgadillo2 Dec 18, 2023
4bea1c5
Update index_es.html
jadelgadillo2 Dec 18, 2023
abcdbc5
translation and glossary
jprincipesalazar Dec 19, 2023
5e15825
Update index_es.html
jadelgadillo2 Dec 19, 2023
9ba4d75
Update index_es.html
jprincipesalazar Dec 19, 2023
e5f90f2
Update index_es.html
jadelgadillo2 Dec 19, 2023
87042d9
Update index_es.html
jadelgadillo2 Dec 19, 2023
72282f0
Update index_es.html
jprincipesalazar Dec 19, 2023
9398eab
Merge branch 'gh-pages' into gh-pages
jprincipesalazar Dec 19, 2023
0eb2e96
Merge pull request #1 from jadelgadillo2/gh-pages
jprincipesalazar Dec 19, 2023
781298e
Update glossary.md
jprincipesalazar Dec 19, 2023
a2b7119
Merge branch 'gh-pages' of https://github.com/jprincipesalazar/ffmpro…
jprincipesalazar Dec 19, 2023
cedae64
Update index_es.html
jprincipesalazar Dec 19, 2023
2abfa0a
Update index_es.html
jprincipesalazar Dec 19, 2023
fff49fd
Update index_es.html
jadelgadillo2 Dec 19, 2023
9dd2afb
update
jprincipesalazar Dec 19, 2023
383c12c
Merge pull request #2 from jadelgadillo2/gh-pages
jprincipesalazar Dec 19, 2023
414f49f
Update index.html
jadelgadillo2 Dec 19, 2023
cdf3d60
Merge branch 'jprincipesalazar:gh-pages' into gh-pages
jadelgadillo2 Dec 19, 2023
40bfd66
.
jprincipesalazar Dec 20, 2023
b162d77
Merge pull request #3 from jadelgadillo2/gh-pages
jprincipesalazar Dec 20, 2023
71c6ff1
Update .DS_Store
jprincipesalazar Dec 20, 2023
08b4091
Merge branch 'gh-pages' of https://github.com/jprincipesalazar/ffmpro…
jprincipesalazar Dec 20, 2023
597ee88
.
jprincipesalazar Dec 20, 2023
61e361d
Update index.html
jadelgadillo2 Dec 20, 2023
c9b6cef
Update css.css
jadelgadillo2 Dec 20, 2023
8fde2f5
Update index.html
jadelgadillo2 Dec 20, 2023
76179da
Update css.css
jadelgadillo2 Dec 20, 2023
fd11eed
Update index.html
jadelgadillo2 Dec 20, 2023
422bb3c
Update index.html
jadelgadillo2 Dec 20, 2023
bc6c121
Update index.html
jadelgadillo2 Dec 20, 2023
3fbb7a9
Merge branch 'jprincipesalazar:gh-pages' into gh-pages
jadelgadillo2 Dec 20, 2023
1616940
Merge pull request #4 from jadelgadillo2/gh-pages
jprincipesalazar Dec 20, 2023
741ba31
Update index_es.html
jprincipesalazar Dec 21, 2023
0ed4822
Update index_es.html
jprincipesalazar Dec 21, 2023
495d52a
Update index_es.html
jprincipesalazar Dec 21, 2023
18a2155
Merge branch 'amiaopensource:gh-pages' into gh-pages
jprincipesalazar Jan 12, 2025
8b963d3
Update index.html
jprincipesalazar Jan 12, 2025
b7fda8d
Update index_es.html
jprincipesalazar Jan 12, 2025
7a054d9
Update index_es.html
jprincipesalazar Jan 12, 2025
917340d
Update index_es.html
jprincipesalazar Jan 12, 2025
c199a32
Update index_es.html
jprincipesalazar Jan 12, 2025
e35b3e9
Update index_es.html
jprincipesalazar Jan 12, 2025
2c64d58
Update index_es.html
jprincipesalazar Jan 12, 2025
b061b46
Update index_es.html
jprincipesalazar Jan 12, 2025
cf678f3
Delete ffmprovisr_spanish/glossary.md
jprincipesalazar Jan 12, 2025
1c0d620
Delete ffmprovisr_spanish/.DS_Store
jprincipesalazar Jan 12, 2025
20b3198
Delete .DS_Store
jprincipesalazar Jan 12, 2025
75b3fcb
Update index_es.html
jprincipesalazar Jan 12, 2025
939c529
Update index_es.html
jprincipesalazar Jan 12, 2025
93216ec
Update index_es.html
jprincipesalazar Jan 12, 2025
e961a7b
Update index_es.html
jprincipesalazar Jan 12, 2025
21912d3
Merge pull request #1 from jprincipesalazar/gh-pages
eu359 Nov 17, 2025
44fe02b
Pull specs from video file
eu359 Nov 21, 2025
19f316c
Update view or strip metadata
eu359 Nov 21, 2025
b1273de
View or strip metadata
eu359 Nov 21, 2025
677f146
Update to 1939
eu359 Nov 21, 2025
236b8c5
Update css.css
eu359 Dec 9, 2025
8047e1d
Update index_es.html
eu359 Dec 9, 2025
947b568
Update css.css
eu359 Dec 9, 2025
fd0ff3f
Update index_es.html
eu359 Dec 9, 2025
ee80a36
Update index_es.html
eu359 Dec 9, 2025
8b5e5c7
Update index_es.html
eu359 Dec 9, 2025
23742b4
Update index_es.html
eu359 Dec 9, 2025
d8b13e4
Update index_es.html
eu359 Dec 9, 2025
aba05c4
Update index_es.html
eu359 Dec 9, 2025
3b96118
Update index_es.html
eu359 Dec 10, 2025
e619372
Update index_es.html
eu359 Dec 10, 2025
cb958af
Update index_es.html
eu359 Dec 10, 2025
776b570
Update index_es.html
eu359 Dec 10, 2025
39ad4f7
Update index_es.html
eu359 Dec 10, 2025
06dea6e
Update index_es.html
eu359 Dec 10, 2025
ae0c2a3
Update index_es.html
eu359 Dec 11, 2025
2987a18
Update index_es.html
eu359 Dec 11, 2025
1f48e89
Update index_es.html
eu359 Dec 11, 2025
5bc15b4
Update index_es.html
eu359 Dec 11, 2025
f41237e
Update index_es.html
eu359 Dec 11, 2025
c84b1af
Update index_es.html
eu359 Dec 11, 2025
d88e675
Update index_es.html
eu359 Dec 11, 2025
35a56a2
Update index_es.html
eu359 Dec 11, 2025
b94d362
Update index_es.html
eu359 Dec 11, 2025
0f45549
Update index_es.html
eu359 Dec 16, 2025
7233745
Update index_es.html
eu359 Dec 16, 2025
fcd1473
Update index_es.html
eu359 Dec 16, 2025
ff9165a
Update index_es.html
eu359 Dec 16, 2025
e79cf85
Update index_es.html
eu359 Dec 16, 2025
95746b7
Update index_es.html
eu359 Dec 16, 2025
4fc91a2
Update index_es.html
eu359 Dec 17, 2025
8f04ff6
Update index_es.html
eu359 Dec 17, 2025
d3f77e1
Update index_es.html
eu359 Dec 17, 2025
9c0f9e2
Update index_es.html
eu359 Dec 17, 2025
1c5b215
Update index_es.html
eu359 Dec 17, 2025
eb2ee34
Update index_es.html
eu359 Dec 17, 2025
b2edc77
Update index_es.html
eu359 Dec 17, 2025
8a0833d
Update index_es.html
eu359 Dec 17, 2025
0c77724
Update index_es.html
eu359 Dec 17, 2025
0ef0dbd
Update index_es.html
eu359 Dec 17, 2025
7f47af9
Update index_es.html
eu359 Dec 17, 2025
574e5d7
Update index_es.html
eu359 Dec 17, 2025
e7d89f5
Update index_es.html
eu359 Dec 17, 2025
2cd680e
Update index_es.html
eu359 Dec 18, 2025
c4c3adc
Update index_es.html
eu359 Dec 18, 2025
fdb8289
Update index_es.html
eu359 Dec 18, 2025
69d25e3
Update index_es.html
eu359 Dec 18, 2025
dd12a49
Update index_es.html
eu359 Dec 18, 2025
32065c9
Update index_es.html
eu359 Dec 18, 2025
4abb1b0
Update index_es.html
eu359 Dec 18, 2025
6d1dabd
Update index_es.html
eu359 Dec 18, 2025
e439d9b
Update index_es.html
eu359 Dec 18, 2025
977148b
Update index_es.html
eu359 Dec 18, 2025
a103bce
Update index_es.html
eu359 Dec 18, 2025
9daecf5
Update index_es.html
eu359 Dec 18, 2025
1d25ee1
Update index_es.html
eu359 Dec 18, 2025
71feab7
Update index_es.html
eu359 Dec 18, 2025
ea9c55e
Update index_es.html
eu359 Dec 18, 2025
0346fa9
Update index_es.html
eu359 Dec 18, 2025
3f53393
Update index_es.html
eu359 Dec 18, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
23 changes: 23 additions & 0 deletions css/css.css
Original file line number Diff line number Diff line change
Expand Up @@ -260,3 +260,26 @@ input[type=checkbox]:checked + div {
overflow: hidden;
transition: opacity .5s linear, height .5s linear;
}

.eslangbutton {
background-color: #04AA6D; /* Green */
border: none;
color: white;
padding: 25px 43px;
text-align: center;
text-decoration: none;
display: inline-block;
font-size: 25px;
margin: 4px 2px;
cursor: pointer;
}

.eslangbutton1 {
background-color: black;
color: black;
border: 2px solid #555555;
border-radius: 12px;
}
.recipe:hover, .eslangbutton:hover {
background-color: #449d44;
}
2,989 changes: 2,989 additions & 0 deletions ffmprovisr_spanish/index_es.html

Large diffs are not rendered by default.

203 changes: 203 additions & 0 deletions ffmprovisr_spanish/recipes.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,203 @@
# Basic rewrap command
ffmpeg -i input_file.ext -c copy -map 0 output_file.ext
# Generate Broadcast WAV
ffmpeg -i input_file.wav -c copy -write_bext 1 -metadata field_name='Content' output_file.wav
# Rewrap DV video to .dv file
ffmpeg -i input_file -f rawvideo -c:v copy output_file.dv
# Transcode to deinterlaced Apple ProRes LT
ffmpeg -i input_file -c:v prores -profile:v 1 -vf yadif -c:a pcm_s16le output_file.mov
# Transcode to an H.264 access file
ffmpeg -i input_file -c:v libx264 -pix_fmt yuv420p -c:a aac output_file
# Transcode from DCP to an H.264 access file
ffmpeg -i input_video_file.mxf -i input_audio_file.mxf -c:v libx264 -pix_fmt yuv420p -c:a aac output_file.mp4
# Transcode your file with the FFV1 Version 3 Codec in a Matroska container
ffmpeg -i input_file -map 0 -dn -c:v ffv1 -level 3 -g 1 -slicecrc 1 -slices 16 -c:a copy output_file.mkv -f framemd5 -an framemd5_output_file
# Convert DVD to H.264
ffmpeg -i concat:input_file_1\|input_file_2\|input_file_3 -c:v libx264 -c:a aac output_file.mp4
# Transcode to an H.265/HEVC MP4
ffmpeg -i input_file -c:v libx265 -pix_fmt yuv420p -c:a copy output_file
# Transcode to H.264 using the GPU
ffmpeg -i input_file -c:v h264_nvenc -preset llhq -rc:v vbr_hq -cq:v 19 -b:v 8000k -maxrate:v 12000k -profile:v high -c:a copy output_file
# Transcode to H.265 using the GPU
ffmpeg -i input_file -c:v hevc_nvenc -preset llhq -rc:v vbr_hq -cq:v 19 -b:v 5000k -maxrate:v 8000k -profile:v main10 -c:a copy output_file
# Transcode to an Ogg Theora
ffmpeg -i input_file -acodec libvorbis -b:v 690k output_file
# Convert WAV to MP3
ffmpeg -i input_file.wav -write_id3v1 1 -id3v2_version 3 -dither_method triangular -out_sample_rate 48k -qscale:a 1 output_file.mp3
# Generate two access MP3s (with and without copyright).
ffmpeg -i input_file -i input_file_to_append -filter_complex "[0:a:0]asplit=2[a][b];[b]afifo[bb];[1:a:0][bb]concat=n=2:v=0:a=1[concatout]" -map "[a]" -codec:a libmp3lame -dither_method triangular -qscale:a 2 output_file.mp3 -map "[concatout]" -codec:a libmp3lame -dither_method triangular -qscale:a 2 output_file_appended.mp3
# Convert WAV to AAC/MP4
ffmpeg -i input_file.wav -c:a aac -b:a 128k -dither_method triangular -ar 44100 output_file.mp4
# Transform 4:3 aspect ratio into 16:9 with pillarbox
ffmpeg -i input_file -filter:v "pad=ih*16/9:ih:(ow-iw)/2:(oh-ih)/2" -c:a copy output_file
# Transform 16:9 aspect ratio video into 4:3 with letterbox
ffmpeg -i input_file -filter:v "pad=iw:iw*3/4:(ow-iw)/2:(oh-ih)/2" -c:a copy output_file
# Flip video image
ffmpeg -i input_file -filter:v "hflip,vflip" -c:a copy output_file
# Transform SD to HD with pillarbox
ffmpeg -i input_file -filter:v "colormatrix=bt601:bt709, scale=1440:1080:flags=lanczos, pad=1920:1080:240:0" -c:a copy output_file
# Change display aspect ratio without re-encoding
ffmpeg -i input_file -c:v copy -aspect 4:3 output_file
# Convert colorspace of video
ffmpeg -i input_file -c:v libx264 -vf colormatrix=src:dst output_file
# Modify image and sound speed
ffmpeg -i input_file -r output_fps -filter_complex "[0:v]setpts=input_fps/output_fps*PTS[v]; [0:a]atempo=output_fps/input_fps[a]" -map "[v]" -map "[a]" output_file
# Fade both video and audio streams
ffmpeg -i input_file -filter:v "fade=in:st=0:d=1, fade=out:st=59:d=1" -filter:a "afade=in:st=0:d=1, afade=out:st=59:d=1" -c:v libx264 -c:a aac output_file
# Synchronize video and audio streams
ffmpeg -i input_file -itsoffset 0.125 -i input_file -map 1:v -map 0:a -c copy output_file
# Clarify stream properties
ffprobe input_file -show_streams
# Crop video
ffmpeg -i input_file -vf "crop=width:height" output_file
# Change video color to black and white
ffmpeg -i input_file -filter_complex hue=s=0 -c:a copy output_file
# Extract audio without loss from an AV file
ffmpeg -i input_file -c:a copy -vn output_file
# Combine audio tracks
ffmpeg -i input_file -filter_complex "[0:a:0][0:a:1]amerge[out]" -map 0:v -map "[out]" -c:v copy -shortest output_file
# Inverses the audio phase of the second channel
ffmpeg -i input_file -af pan="stereo|c0=c0|c1=-1*c1" output_file
# Calculate Loudness Levels
ffmpeg -i input_file -af loudnorm=print_format=json -f null -
# RIAA Equalization
ffmpeg -i input_file -af aemphasis=type=riaa output_file
# Reverse CD Pre-Emphasis
ffmpeg -i input_file -af aemphasis=type=cd output_file
# One Pass Loudness Normalization
ffmpeg -i input_file -af loudnorm=dual_mono=true -ar 48k output_file
# Two Pass Loudness Normalization
ffmpeg -i input_file -af loudnorm=dual_mono=true:measured_I=input_i:measured_TP=input_tp:measured_LRA=input_lra:measured_thresh=input_thresh:offset=target_offset:linear=true -ar 48k output_file
# Fix A/V sync issues by resampling audio
ffmpeg -i input_file -c:v copy -c:a pcm_s16le -af "aresample=async=1000" output_file
# Join (concatenate) two or more files of the same type
ffmpeg -f concat -i mylist.txt -c copy output_file
# Join (concatenate) two or more files of different types
ffmpeg -i input_1.avi -i input_2.mp4 -filter_complex "[0:v:0][0:a:0][1:v:0][1:a:0]concat=n=2:v=1:a=1[video_out][audio_out]" -map "[video_out]" -map "[audio_out]" output_file
# Split one file into several smaller segments
ffmpeg -i input_file -c copy -map 0 -f segment -segment_time 60 -reset_timestamps 1 output_file-%03d.mkv
# Trim file
ffmpeg -i input_file -ss 00:02:00 -to 00:55:00 -c copy -map 0 output_file
# Create an excerpt, starting from the beginning of the file
ffmpeg -i input_file -t 5 -c copy -map 0 output_file
# Create a new file with the first five seconds trimmed off the original
ffmpeg -i input_file -ss 5 -c copy -map 0 output_file
# Create a new file with the final five seconds of the original
ffmpeg -sseof -5 -i input_file -c copy -map 0 output_file
# Trim silence from beginning of an audio file
ffmpeg -i input_file -af silenceremove=start_threshold=-57dB:start_duration=1:start_periods=1 -c:a your_codec_choice -ar your_sample_rate_choice output_file
# Trim silence from the end of an audio file
ffmpeg -i input_file -af areverse,silenceremove=start_threshold=-57dB:start_duration=1:start_periods=1,areverse -c:a your_codec_choice -ar your_sample_rate_choice output_file
# Upscaled, pillar-boxed HD H.264 access files from SD NTSC source
ffmpeg -i input_file -c:v libx264 -filter:v "yadif, scale=1440:1080:flags=lanczos, pad=1920:1080:(ow-iw)/2:(oh-ih)/2, format=yuv420p" output_file
# Deinterlace video
ffmpeg -i input_file -c:v libx264 -vf "yadif,format=yuv420p" output_file
# Deinterlace video fields to frames
ffmpeg -i input_file -c:v libx264 -vf "idet,bwdif,format=yuv420p" output_file
# Inverse telecine
ffmpeg -i input_file -c:v libx264 -vf "fieldmatch,yadif,decimate" output_file
# Set field order for interlaced video
ffmpeg -i input_file -c:v video_codec -filter:v setfield=tff output_file
# Identify interlacement patterns in a video file
ffmpeg -i input file -filter:v idet -f null -
# Create opaque centered text watermark
ffmpeg -i input_file -vf drawtext="fontfile=font_path:fontsize=font_size:text=watermark_text:fontcolor=font_color:alpha=0.4:x=(w-text_w)/2:y=(h-text_h)/2" output_file
# Overlay image watermark on video
ffmpeg -i input_video file -i input_image_file -filter_complex overlay=main_w-overlay_w-5:5 output_file
# Burn in timecode
ffmpeg -i input_file -vf drawtext="fontfile=font_path:fontsize=font_size:timecode=starting_timecode:fontcolor=font_colour:box=1:boxcolor=box_colour:rate=timecode_rate:x=(w-text_w)/2:y=h/1.2" output_file
Embed subtitles
ffmpeg -i input_file -i subtitles_file -c copy -c:s mov_text output_file
# Export one thumbnail per video file
ffmpeg -i input_file -ss 00:00:20 -vframes 1 thumb.png
# Export many thumbnails per video file
ffmpeg -i input_file -vf fps=1/60 out%d.png
# Create GIF from still images
ffmpeg -f image2 -framerate 9 -pattern_type glob -i "input_image_*.jpg" -vf scale=250x250 output_file.gif
# Create GIF from a video
ffmpeg -ss HH:MM:SS -i input_file -filter_complex "fps=10,scale=500:-1:flags=lanczos,palettegen" -t 3 palette.png
ffmpeg -ss HH:MM:SS -i input_file -i palette.png -filter_complex "[0:v]fps=10, scale=500:-1:flags=lanczos[v], [v][1:v]paletteuse" -t 3 -loop 6 output_file
# Transcode an image sequence into uncompressed 10-bit video
ffmpeg -f image2 -framerate 24 -i input_file_%06d.ext -c:v v210 output_file
# Create video from image and audio
ffmpeg -r 1 -loop 1 -i image_file -i audio_file -acodec copy -shortest -vf scale=1280:720 output_file
# Audio Bitscope
ffplay -f lavfi "amovie=input_file, asplit=2[out1][a], [a]abitscope=colors=purple|yellow[out0]"
# Play a graphical output showing decibel levels of an input file
ffplay -f lavfi "amovie='input.mp3', astats=metadata=1:reset=1, adrawgraph=lavfi.astats.Overall.Peak_level:max=0:min=-30.0:size=700x256:bg=Black[out]"
# Identify pixels out of broadcast range
ffplay -f lavfi "movie='input.mp4', signalstats=out=brng:color=cyan[out]"
# Vectorscope from video to screen
ffplay input_file -vf "split=2[m][v], [v]vectorscope=b=0.7:m=color3:g=green[v], [m][v]overlay=x=W-w:y=H-h"
# Side by Side Videos/Temporal Difference Filter
ffmpeg -i input01 -i input02 -filter_complex "[0:v:0]tblend=all_mode=difference128[a];[1:v:0]tblend=all_mode=difference128[b];[a][b]hstack[out]" -map [out] -f nut -c:v rawvideo - | ffplay -
# Use xstack to arrange output layout of multiple video sources
ffplay -f lavfi -i testsrc -vf "split=3[a][b][c],[a][b][c]xstack=inputs=3:layout=0_0|0_h0|0_h0+h1[out]"
# Pull specs from video file
ffprobe -i input_file -show_format -show_streams -show_data -print_format xml
# Strip metadata
ffmpeg -i input_file -map_metadata -1 -c:v copy -c:a copy output_file
# Batch processing (Mac/Linux)
for file in *.mxf; do ffmpeg -i "$file" -map 0 -c copy "${file%.mxf}.mov"; done
# Check decoder errors
ffmpeg -i input_file -f null -
# Check FFV1 fixity
ffmpeg -report -i input_file -f null -
# Create MD5 checksums (video frames)
ffmpeg -i input_file -f framemd5 -an output_file
# Create MD5 checksums (audio samples)
ffmpeg -i input_file -af "asetnsamples=n=48000" -f framemd5 -vn output_file
# Create MD5 checksum(s) for A/V stream data only
ffmpeg -i input_file -map 0:v:0 -c:v copy -f md5 output_file_1 -map 0:a:0 -c:a copy -f md5 output_file_2
# Get checksum for video/audio stream
ffmpeg -loglevel error -i input_file -map 0:v:0 -f hash -hash md5 -
# Get individual checksums for all video/audio streams ("Streamhash")
ffmpeg -i input_file -map 0 -f streamhash -hash md5 - -v quiet
# QCTools report (with audio)
ffprobe -f lavfi -i "movie=input_file:s=v+a[in0][in1], [in0]signalstats=stat=tout+vrep+brng, cropdetect=reset=1:round=1, idet=half_life=1, split[a][b];[a]field=top[a1];[b]field=bottom, split[b1][b2];[a1][b1]psnr[c1];[c1][b2]ssim[out0];[in1]ebur128=metadata=1, astats=metadata=1:reset=1:length=0.4[out1]" -show_frames -show_versions -of xml=x=1:q=1 -noprivate | gzip > input_file.qctools.xml.gz
# QCTools report (no audio)
ffprobe -f lavfi -i "movie=input_file,signalstats=stat=tout+vrep+brng, cropdetect=reset=1:round=1, idet=half_life=1, split[a][b];[a]field=top[a1];[b]field=bottom,split[b1][b2];[a1][b1]psnr[c1];[c1][b2]ssim" -show_frames -show_versions -of xml=x=1:q=1 -noprivate | gzip > input_file.qctools.xml.gz
# Read/Extract EIA-608 Closed Captioning
ffprobe -f lavfi -i movie=input_file,readeia608 -show_entries frame=pkt_pts_time:frame_tags=lavfi.readeia608.0.line,lavfi.readeia608.0.cc,lavfi.readeia608.1.line,lavfi.readeia608.1.cc -of csv > input_file.csv
# Make a mandelbrot test pattern video
ffmpeg -f lavfi -i mandelbrot=size=1280x720:rate=25 -c:v libx264 -t 10 output_file
# Make a SMPTE bars test pattern video
ffmpeg -f lavfi -i smptebars=size=720x576:rate=25 -c:v prores -t 10 output_file
# Make a test pattern video
ffmpeg -f lavfi -i testsrc=size=720x576:rate=25 -c:v v210 -t 10 output_file
# Play HD SMPTE bars
ffplay -f lavfi -i smptehdbars=size=1920x1080
# Play VGA SMPTE bars
ffplay -f lavfi -i smptebars=size=640x480
# Generate a sine wave test audio file
ffmpeg -f lavfi -i "sine=frequency=1000:sample_rate=48000:duration=5" -c:a pcm_s16le output_file.wav
# SMPTE bars + Sine wave audio
ffmpeg -f lavfi -i "smptebars=size=720x576:rate=25" -f lavfi -i "sine=frequency=1000:sample_rate=48000" -c:a pcm_s16le -t 10 -c:v ffv1 output_file
# Make a broken file
ffmpeg -i input_file -bsf noise=1 -c copy output_file
# Conway's Game of Life
ffplay -f lavfi life=s=300x200:mold=10:r=60:ratio=0.1:death_color=#C83232:life_color=#00ff00,scale=1200:800
# Play video with OCR
ffplay input_file -vf "ocr,drawtext=fontfile=/Library/Fonts/Andale Mono.ttf:text=%{metadata\\\:lavfi.ocr.text}:fontcolor=white"
# Export OCR from video to screen
ffprobe -show_entries frame_tags=lavfi.ocr.text -f lavfi -i "movie=input_file,ocr"
# Compare Video Fingerprints
ffmpeg -i input_one -i input_two -filter_complex signature=detectmode=full:nb_inputs=2 -f null -
# Generate Video Fingerprint
ffmpeg -i input -vf signature=format=xml:filename="output.xml" -an -f null -
# Play an image sequence
ffplay -framerate 5 input_file_%06d.ext
# Split audio and video tracks
ffmpeg -i input_file -map 0:v:0 video_output_file -map 0:a:0 audio_output_file
# Merge audio and video tracks
ffmpeg -i video_file -i audio_file -map 0:v -map 1:a -c copy output_file
# Create ISO files for DVD access
ffmpeg -i input_file -aspect 4:3 -target ntsc-dvd output_file.mpg
# CSV with timecodes and YDIF
ffprobe -f lavfi -i movie=input_file,signalstats -show_entries frame=pkt_pts_time:frame_tags=lavfi.signalstats.YDIF -of csv
# Cover head switching noise
ffmpeg -i input_file -filter:v drawbox=w=iw:h=7:y=ih-h:t=max output_file
# 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}"
# View FFmpeg subprogram information
ffmpeg -h type=name
74 changes: 74 additions & 0 deletions ffmprovisr_spanish/scripts/check_audio_framemd5.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
#!/usr/bin/env bash
SCRIPT=$(basename "${0}")
VERSION="2018-02-10"
AUTHOR="ffmprovisr"
RED="\033[1;31m"
BLUE="\033[1;34m"
NC="\033[0m"

if [[ "${OSTYPE}" = "cygwin" ]] || [[ ! "$(which diff)" ]]; then
echo -e "${RED}Error: 'diff' is not installed by default. Please install 'diffutils' from Cygwin.${NC}"
exit 1
fi

_output_prompt(){
cat <<EOF
Usage: ${SCRIPT} -i <av_file> -m <md5_file> | -h
EOF
exit 1
}

_output_help(){
cat <<EOF
Syntax:
${SCRIPT} -i <av_file> -m <md5_file>
Pass to the script the audio-visual file and the corresponding MD5
file to check.
${SCRIPT} -h
This help.
Dependency:
ffmpeg
About:
Version: ${VERSION}
Website: https://github.com/amiaopensource/ffmprovisr/blob/gh-pages/scripts/check_audio_framemd5.sh
EOF
exit 0
}

unset input_file
unset input_hash

while getopts ":i:m:h" opt; do
case "${opt}" in
i) input_file=${OPTARG} ;;
m) input_hash=${OPTARG} ;;
h) _output_help ;;
:) echo -e "${RED}Error: option -${OPTARG} requires an argument${NC}" ; _output_prompt ;;
*) echo -e "${RED}Error: bad option -${OPTARG}${NC}" ; _output_prompt ;;
esac
done

[[ -z "${#}" || ! ${input_file} || ! ${input_hash} ]] && _output_prompt
echo -e "${BLUE}Please wait...${NC}"
unset md5_tmp
if [[ $OSTYPE = "cygwin" ]]; then
md5_tmp="${USERPROFILE}/$(basename "${input_hash}").tmp"
else
md5_tmp="${HOME}/$(basename "${input_hash}").tmp"
fi
# Find audio frame size for hash calculation
unset sample_rate
sample_rate=$(grep -v '^#' "${input_hash}" | head -n 1 | tr -d ' ' | cut -d',' -f4)
ffmpeg -i "${input_file}" -loglevel 0 -af "asetnsamples=n='$sample_rate'" -f framemd5 -vn "${md5_tmp}"
[[ ! -f ${md5_tmp} ]] && { echo -e "${RED}Error: '${input_file}' is not a valid audio-visual file.${NC}" ; _output_prompt ; }
unset old_file
unset tmp_file
old_file=$(grep -v '^#' "${input_hash}")
tmp_file=$(grep -v '^#' "${md5_tmp}")
if [[ "${old_file}" = "${tmp_file}" ]]; then
echo -e "${BLUE}'$(basename "${input_file}")' matches '$(basename "${input_hash}")'${NC}"
else
echo -e "${RED}The following differences were detected between '$(basename "${input_file}")' and '$(basename "${input_hash}")':${NC}"
diff "${input_hash}" "${md5_tmp}"
fi
rm "${md5_tmp}"
71 changes: 71 additions & 0 deletions ffmprovisr_spanish/scripts/check_video_framemd5.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
#!/usr/bin/env bash
SCRIPT=$(basename "${0}")
VERSION="2018-02-10"
AUTHOR="ffmprovisr"
RED="\033[1;31m"
BLUE="\033[1;34m"
NC="\033[0m"

if [[ "${OSTYPE}" = "cygwin" ]] || [[ ! "$(which diff)" ]]; then
echo -e "${RED}Error: 'diff' is not installed by default. Please install 'diffutils' from Cygwin.${NC}"
exit 1
fi

_output_prompt(){
cat <<EOF
Usage: ${SCRIPT} -i <av_file> -m <md5_file> | -h
EOF
exit 1
}

_output_help(){
cat <<EOF
Syntax:
${SCRIPT} -i <av_file> -m <md5_file>
Pass to the script the audio-visual file and the corresponding MD5
file to check.
${SCRIPT} -h
This help.
Dependency:
ffmpeg
About:
Version: ${VERSION}
Website: https://github.com/amiaopensource/ffmprovisr/blob/gh-pages/scripts/check_video_framemd5.sh
EOF
exit 0
}

unset input_file
unset input_hash

while getopts ":i:m:h" opt; do
case "${opt}" in
i) input_file=${OPTARG} ;;
m) input_hash=${OPTARG} ;;
h) _output_help ;;
:) echo -e "${RED}Error: option -${OPTARG} requires an argument${NC}" ; _output_prompt ;;
*) echo -e "${RED}Error: bad option -${OPTARG}${NC}" ; _output_prompt ;;
esac
done

[[ -z "${#}" || ! ${input_file} || ! ${input_hash} ]] && _output_prompt
echo -e "${BLUE}Please wait...${NC}"
unset md5_tmp
if [[ "${OSTYPE}" = "cygwin" ]]; then
md5_tmp="${USERPROFILE}/$(basename "${input_hash}").tmp"
else
md5_tmp="${HOME}/$(basename "${input_hash}").tmp"
fi
ffmpeg -i "${input_file}" -loglevel 0 -f framemd5 -an "${md5_tmp}"
[[ ! -f "${md5_tmp}" ]] && { echo -e "${RED}Error: '${input_file}' is not a valid audio-visual file.${NC}" ; _output_prompt ; }
unset old_file
unset tmp_file
old_file=$(grep -v '^#' "${input_hash}")
tmp_file=$(grep -v '^#' "${md5_tmp}")
if [[ "${old_file}" = "${tmp_file}" ]]; then
echo -e "${BLUE}'$(basename "${input_file}")' matches '$(basename "${input_hash}")'${NC}"
else
echo -e "${RED}The following differences were detected between '$(basename "${input_file}")' and '$(basename "${input_hash}")':${NC}"
diff "${input_hash}" "${md5_tmp}"
fi
rm "${md5_tmp}"
Loading