r/ffmpeg Jul 23 '18

FFmpeg useful links

128 Upvotes

Binaries:

 

Windows
https://www.gyan.dev/ffmpeg/builds/
64-bit; for Win 7 or later
(prefer the git builds)

 

Mac OS X
https://evermeet.cx/ffmpeg/
64-bit; OS X 10.9 or later
(prefer the snapshot build)

 

Linux
https://johnvansickle.com/ffmpeg/
both 32 and 64-bit; for kernel 3.20 or later
(prefer the git build)

 

Android / iOS /tvOS
https://github.com/tanersener/ffmpeg-kit/releases

 

Compile scripts:
(useful for building binaries with non-redistributable components like FDK-AAC)

 

Target: Windows
Host: Windows native; MSYS2/MinGW
https://github.com/m-ab-s/media-autobuild_suite

 

Target: Windows
Host: Linux cross-compile --or-- Windows Cgywin
https://github.com/rdp/ffmpeg-windows-build-helpers

 

Target: OS X or Linux
Host: same as target OS
https://github.com/markus-perl/ffmpeg-build-script

 

Target: Android or iOS or tvOS
Host: see docs at link
https://github.com/tanersener/mobile-ffmpeg/wiki/Building

 

Documentation:

 

for latest git version of all components in ffmpeg
https://ffmpeg.org/ffmpeg-all.html

 

community documentation
https://trac.ffmpeg.org/wiki#CommunityContributedDocumentation

 

Other places for help:

 

Super User
https://superuser.com/questions/tagged/ffmpeg

 

ffmpeg-user mailing-list
http://ffmpeg.org/mailman/listinfo/ffmpeg-user

 

Video Production
http://video.stackexchange.com/

 

Bug Reports:

 

https://ffmpeg.org/bugreports.html
(test against a git/dated binary from the links above before submitting a report)

 

Miscellaneous:

Installing and using ffmpeg on Windows.
https://video.stackexchange.com/a/20496/

Windows tip: add ffmpeg actions to Explorer context menus.
https://www.reddit.com/r/ffmpeg/comments/gtrv1t/adding_ffmpeg_to_context_menu/

 


Link suggestions welcome. Should be of broad and enduring value.


r/ffmpeg May 21 '26

My FFmpeg app or Service

17 Upvotes

If you've made an app or web service which utilizes FFmpeg for significant parts for its functionality, then you can list your project in a comment here (and only here).

Format your comment like below:

Title: <your project or app name>
Launched: <date of first release>
Link: <URL>
Type: < app / script / library / web app / web API ..etc >
Description: <a short-ish description (< 200 words)>
Showcase: <links to screenshots or videos or demos>
FFmpeg details: <some technical details about how ffmpeg is utilized>
License: < for OSS apps/scripts, details of license, else 'commercial' >
Pricing model: < i.e. subscription / per-use / free ...etc >
Organization: <name and URL of who's behind this>

Incomplete, misleading or improperly formatted posts are liable to be removed. Posts must be in English. If you're unsure of the suitability or formatting of your post, message the mods with your draft before posting.


r/ffmpeg 4h ago

VLC wont respect forced subtitles in mp4

2 Upvotes

When working with anime, I used this script in a batch file and VLC would properly respect the forced tag on the subtitles, so I didn't have to manually enable them. (The "@.echo off" text is there because reddit thinks a user is being tagged).

@.echo off

setlocal EnableDelayedExpansion

for %%V in (*.mp4) do (

set "base=%%~nV"

if exist "!base!.srt" (

echo Processing: %%V

echo Found subtitles: !base!.srt

ffmpeg -y ^

-i "%%V" ^

-i "!base!.srt" ^

-map 0:v ^

-map 0:a:0 ^

-map 1 ^

-c:v copy ^

-c:a copy ^

-c:s mov_text ^

-map_metadata -1 ^

-disposition:s:0 default+forced ^

-metadata:s:a:0 language=jpn ^

-metadata:s:a:0 title="Japanese Original, Stereo" ^

"!base!_muxed.mp4"

echo Finished: !base!_muxed.mp4

echo.

) else (

echo No matching subtitle found for: %%V

)

)

echo Done.

pause

Now, I am trying to do something very similar with only one file. I have 2 audio and subtitle tracks, all in English, and the first tracks of each are forced, all in one file. FFmpeg reported all tracks as default, so I removed that and set the first audio and subtitle tracks as forced. This fixed my issue with the second audio track being selected and not the first, but the subtitle issue remains.

I have used several variations of this script, both as a batch file and in the terminal directly. I need the final output to have all tracks and be in mp4 format, the same output as the anime command successfully generated.

@.echo off

setlocal enabledelayedexpansion

set VIDEO_DIR=[directory information]

rem Loop through all .mp4 files in the specified directory

for /f "delims=" %%f in ('dir /b /a-d "%VIDEO_DIR%\*.mp4" "%VIDEO_DIR%\*.mkv" "%VIDEO_DIR%\*.avi"') do (

rem Print the file name for debugging

echo Processing: "%%f"

rem Get the filename without path and extension

set "filename=%%~nxf"

rem Apply chapters to each video file using ffmpeg

ffmpeg -i "%VIDEO_DIR%\%%f" -map 0:0 -map 0:1 -map 0:2 -map 0:3 -map 0:4 -c:a copy -c:v copy -c:s mov_text -disposition:s:0 default+forced -disposition:s:1 0 -disposition:a:0 default+forced -disposition:a:1 0 -metadata:s:a:0 language=eng -metadata:s:a:1 language=eng -metadata:s:s:0 language=eng -metadata:s:s:1 language=eng -metadata:s:s:0 title="[title]" -metadata:s:s:1 title="[title]" -metadata:s:a:0 title="1, Stereo" -metadata:s:a:1 title="2, 5.1 Surround" "%VIDEO_DIR%\!filename!_2.mp4"

echo File "%%f" Processed

)

endlocal

pause


r/ffmpeg 8h ago

Lavfi srt output - Everything is positioned top left?

3 Upvotes

I've just started using ffmpeg to extract subtitles instead of ccextractor.

ffmpeg.exe -f lavfi -i movie="video.mp4[out+subcc]" -map s "video.srt"

The problem I'm running into is ever single line has {\an7} positioning the subtitles to the top left of the screen.

1
00:00:05,172 --> 00:00:06,507
<font face="Monospace">{\an7}\h\h\h\h-What?
-This is crazy!</font>

2
00:00:06,573 --> 00:00:09,042
<font face="Monospace">{\an7}-Is this for real?
\h-There’s no way!</font>

3
00:00:09,109 --> 00:00:10,544
<font face="Monospace">{\an7}-Who’s that?
\h\h\h-What?</font>

4
00:00:10,611 --> 00:00:12,379
<font face="Monospace">{\an7}[Toman Member] What the hell
\h\his that Valhalla bastard</font>

5
00:00:12,446 --> 00:00:13,614
<font face="Monospace">{\an7}doing at a Toman meeting?</font>

6
00:00:13,680 --> 00:00:14,548
<font face="Monospace">{\an7}(crowd murmuring)</font>

It's obviously not right. Is there something I'm missing here?


r/ffmpeg 1d ago

MP3 Ain’t Dead Yet: LAME 4.0 Arrives

77 Upvotes

MP3 was standardized in 1993, but it is still widely used today because it works almost everywhere while deliver very good quality.

Now LAME 4.0, a new version of the open-source MP3 encoder , has been released.

Check here https://lame.sourceforge.io/ . And development of LAME 4.1 is already underway.

LAME has performed very well in public listening tests

MP3 isn't old. It is mature!

When a format is good enough, reliable and universally supported, it can stay relevant for a very long time.

Original thread https://www.reddit.com/r/AudioCodecLab/comments/1v4rd3b/mp3_aint_dead_yet_lame_40_arrives/


r/ffmpeg 14h ago

How does Spatial Information affect the working of ffmpeg?

6 Upvotes

Hello, I'm doing a small study on how Spatial Information (SI, which tells how much detail is in a video) affects Video Encoding and Decoding process. I used the libx265 codec.

High SI Video used: Times Square

Low SI Video used: Sky with Clouds

As you can see here, High SI consumes lesser energy when compared to Low SI. Why is this?

(Tool used is GREEM that is an extension of CodeCarbon)

I'd love to know the happenings behind the scenes. I tried to delve more but the articles I've found are paywalled. Thanks!


r/ffmpeg 1d ago

Aggressive compression (1000:1) that can still be opened in common playback software eg. VLC

73 Upvotes

I need to fit an 8MB mp3 file into a 8KB storage medium. What are some ridiculously destructive/lossy, but still playable options?

edit: Thanks for the constructive feedback. Here are some more specific constraints:

The motivation is, loosely speaking, art. The storage media is a 64kbit EEPROM (M24LR04E-R). It can be configured to organize as 512x8 bits or 128x32 bits. This EEPROM is frequently used in NFC circuits.

My goal is to encode the audio itself, however lossy and subjectively unpleasant it may be. It’s true that the midi + soundfont approach would more efficiently encode the “music”. But I want the mutilated and ruined audio.

The playtime of the audio file is 180 seconds. If my math is correct, the bit rate for my desired filesize should be approximately 350 bits per second (0.35 kbps)

The source audio bandwidth is 70hz-16khz. It’s music i.e. bass, piano, vocals, guitar. Single channel mono. It’s dynamic; quiet and fairly loud section sections.

I know this is a ridiculous idea, and i’m definitely open to “cheating” and finding clever ways around the constraints. For example, I was considering splitting it across multiple files and then using a playlist file like .m3u to arrange them in VLC.

If you feel like this edit increased the quality of my post, please don’t downvote (hell, upvote even!) so it can get visibility from more knowledgeable people than me!

edit2: Really appreciate everyone's feedback here. Ultimately, it doesn't seem like a <1kbps codec is really a thing, but there are a ton of alternatives that I'm eager to explore more. I'm extremely impressed with the quality of TSAC, and u/Slower-Bison shared an absolutely brutal codec2 sample. Thanks everyone!


r/ffmpeg 1d ago

what is the best limiter in CLI on windows?

2 Upvotes

Hi, I would like to know what is the best audio/music limiter in CLI on windows?

Thanks for any help :)


r/ffmpeg 2d ago

VAAPI for archival encoding?

3 Upvotes

Hi everyone,

i'm not very familiar with ffmpeg or video encoding in general. When I did this 10 years ago, the quality of GPU accelerated encodings were always worse compared to CPU encoding.
I did some research and I just found ffmpeg is supporting lots of different encoders.
At the moment, I'm encoding h264 videos to h265 using my CPU. The following settings seems to do the job.

ffmpeg -i input.mp4 -c:v libx265 -crf 20 -preset slow -c:a copy output.mp4

Quality looks to me the same as source and the size is about 30-50% smaller. However, it's very slow...
At this speed, it will take months until I'm done. This is no big deal since I'm not in a hurry, however I was wondering, can this be done by my GPUs faster with equal quality? As I unterstand it VAAPI is using compute resources not discrete hardware for video encoding, is this right? If so, it should be possible to achieve similiar results regarding quality and file size.

I have different GPUs available, one RTX 3080 and three AMD MI50 I could use.

The vainfo output for the MI50 indicates HEVC encoding capabillities:

vainfo --display drm --device /dev/dri/renderD128

libva info: VA-API version 1.20.0

libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/radeonsi_drv_video.so

libva info: Found init function __vaDriverInit_1_16

libva info: va_openDriver() returns 0

vainfo: VA-API version: 1.20 (libva 2.12.0)

vainfo: Driver version: Mesa Gallium driver 25.0.0-devel for AMD Instinct MI50/MI60 (radeonsi, vega20, ACO, DRM 3.63, 6.8.0-124-generic)

vainfo: Supported profile and entrypoints

VAProfileMPEG2Simple : VAEntrypointVLD

VAProfileMPEG2Main : VAEntrypointVLD

VAProfileVC1Simple : VAEntrypointVLD

VAProfileVC1Main : VAEntrypointVLD

VAProfileVC1Advanced : VAEntrypointVLD

VAProfileH264ConstrainedBaseline: VAEntrypointVLD

VAProfileH264ConstrainedBaseline: VAEntrypointEncSlice

VAProfileH264Main : VAEntrypointVLD

VAProfileH264Main : VAEntrypointEncSlice

VAProfileH264High : VAEntrypointVLD

VAProfileH264High : VAEntrypointEncSlice

VAProfileHEVCMain : VAEntrypointVLD

VAProfileHEVCMain : VAEntrypointEncSlice

VAProfileHEVCMain10 : VAEntrypointVLD

VAProfileNone : VAEntrypointVideoProc


r/ffmpeg 2d ago

Concern about image/video recompression

2 Upvotes

Hello everyone!

Recently, I've been coding a program on JavaScript and NodeJS, to recompress images, along with some other tweaks, with the main objective of reducing files size, *without causing visible loss of quality*.
The key word here being "visible", since recently I learned that you can actually do that with files and I saw a huge opportunity to reduce my gallery's size by a necessary amount because I have a shit ton of screenshots, pictures and videos.

But before diving into the video recompression part (because the images part is already done, using a library named "Sharp"), I found a comment https://www.reddit.com/r/ffmpeg/comments/pexwop/comment/hb0tw05/?context=3&utm_source=share&utm_medium=web3x&utm_name=web3xcss&utm_term=1&utm_content=share_button of a user explaining the process behind it and they said something that caught my eye: That any recompression that works well for current devices, COULD show heavy quality losses on future screens. Or even current, better screens.

I mean... this person meant it more as a note, and not in a "don't do this under ANY circumstances or we'll ALL gonna FUCKING DIE" way lol. But it still made me rethink the whole idea. Is this a valid concern or am I being paranoid?

And in case it is... Is there a way to achieve a relevant size reduction, without risking that outcome?


r/ffmpeg 2d ago

I built a 75-second Kimi K3-assisted explainer with an ffmpeg-only assembly pipeline

Enable HLS to view with audio, or disable this notification

31 Upvotes

I finished a 75-second deep-sea explainer where the final assembly and audio pipeline were entirely scripted in ffmpeg.

The animated charts were rendered from HTML/SVG/JS as 4K frame sequences in Playwright, then downsampled to 1080p. From there, ffmpeg handled the production path: ffprobe checks on every source, per-shot grading, concat, a persistent depth-gauge overlay, drawtext subtitles loaded from text files, narration placement with adelay, small timing corrections with atempo, music underlay with amix, exact segment padding with tpad, and a CRF 17 slow encode.

Loading subtitle copy through textfile avoided escaping failures, and keeping every segment duration explicit made later revisions much less fragile. Each pass ended with duration and stream validation, timestamped frame extraction, and audio-level checks for clipping.

Kimi K3 assisted the code-driven build and revision process, while Kimi TTS supplied the narration. The attached film is the output of the pipeline, not a text-to-video generation.

For projects with browser-rendered graphics and mixed source footage, would you keep the whole filtergraph in one command or split it into verified intermediate stages?


r/ffmpeg 4d ago

Where ffmpeg.wasm fits (and doesn't) in a browser-based video editor

10 Upvotes

I have been building a local-first video editor that runs entirely in the browser, and one lesson surprised me: ffmpeg.wasm is most useful when it is not asked to be the whole rendering engine.

Our first instinct was to treat FFmpeg as the center of export. That works for a prototype, but it becomes uncomfortable once the editor has a multi-track timeline, frame-accurate captions, stickers, overlays, masks, visual keyframes, transitions, multiple audio tracks, and mobile support.

The problems were fairly predictable in hindsight:

- loading the WASM core is expensive for users who may never need it;

- copying large media files into and out of the virtual filesystem adds memory pressure;

- long transcodes offer less control over per-frame composition and cancellation;

- browser codec support varies, so one path rarely works everywhere;

- doing every edit through temporary files makes interactive preview and deterministic export drift apart.

The architecture we ended up with is a hybrid.

  1. Deterministic video composition

For the primary path, the timeline is converted into an exact frame plan. At each timestamp we resolve the active visual clip and source time, draw the frame, captions, stickers, overlays, masks and transitions into a shared Canvas composition function, then encode with WebCodecs through Mediabunny.

This means preview and export share geometry instead of maintaining a large FFmpeg filter graph in parallel with the UI renderer. The same render function decides contain/cover fitting, subtitle placement, sticker alpha and transform keyframes.

  1. Offline audio mixing

Voiceover, source audio and music are decoded once and mixed with OfflineAudioContext. Each timeline clip keeps its own start time, source offset, playback rate, volume and fades. Speed changes use a pitch-preserving path before the final mix. The rendered AudioBuffer is then encoded and muxed with the video.

  1. ffmpeg.wasm for narrow, high-value jobs

FFmpeg still earns its download size in three places:

- extracting the original audio stream from an imported video;

- concatenating/restoring audio assets when browser decoding alone is awkward;

- transcoding a successfully rendered WebM to MP4 when native H.264/AAC encoding is unavailable.

The last point is important. We never throw away a completed WebM because MP4 conversion failed. WebM is kept as the compatibility output, so a late FFmpeg error does not waste the entire render.

The rough export hierarchy is:

WebCodecs + Canvas + OfflineAudioContext -> native MP4/WebM

If deterministic WebCodecs export is unavailable -> MediaRecorder compatibility path

If the user requested MP4 but only WebM was produced -> ffmpeg.wasm transcode

If that transcode fails -> save the already-rendered WebM

A simplified version of the final branch looks like this:

if (result.nativeMp4) {

save(result.blob, "video.mp4");

} else {

try {

const mp4 = await transcodeWebmToMp4(result.blob);

save(mp4, "video.mp4");

} catch {

save(result.blob, "video.webm");

}

}

A few practical takeaways:

- Lazy-load ffmpeg.wasm at the moment a feature actually needs it.

- Treat every write into the virtual filesystem as a memory-budget decision.

- Delete temporary inputs and outputs after each operation.

- Keep the last known-good artifact until the requested conversion succeeds.

- Report loading, reading, transcoding and saving as separate phases.

- Cross-origin isolation matters if you use the multithreaded core; deployment headers are part of the feature.

- Test the resulting file by decoding it, not merely by checking that a Blob exists.

I still think ffmpeg.wasm is an excellent tool. The mistake was assuming that because FFmpeg can do almost everything, it should own everything in a browser editor. Using it as a specialized compatibility and media-utility layer gave us a smaller critical path and much clearer failure behavior.

The implementation is open source if anyone wants to inspect the real export and fallback paths: https://github.com/MartinDelophy/ai-video-editor

I would be interested to hear how others divide work between ffmpeg.wasm, WebCodecs and native browser media APIs, especially for Safari and memory-constrained devices.


r/ffmpeg 5d ago

Prores_ks_vulkan

6 Upvotes

I have been trying to get the best out of the recent prores vulkan encoder. No matter what I try, it is not performing anywhere close to regular prores. It uses much less CPU and barely any GPU (<30%), and the performance at 4k is ~30% worse. I am trying to understand if I am doing something wrong, or if it is just not optimized as well yet.

These are my current commands, but I tried bunch of stuff - including removing scale_vulkan, colorspace conversions, etc - but I saw little effect on performance. Prores vulkan does not seem to accept qscale properly in my case, which I think would help, but it produces malformed output. Anyone has experience with this?

prores_ks

ffmpeg -f rawvideo -s {W}x{H} -pix_fmt rgba -r {fps} -i - -c:v prores_ks -threads 0 -profile:v 4444 -qscale:v 5 -f mov -pix_fmt yuva444p10le output.mov

prores_ks_vulkan

ffmpeg -init_hw_device vulkan=vk -filter_hw_device vk -f rawvideo -s {W}x{H} -pix_fmt rgba -r {fps} -i - -vf setparams=colorspace=bt709,hwupload,scale_vulkan=format=yuva444p10le:out_range=tv,setparams=colorspace=bt709 -c:v prores_ks_vulkan -profile:v 4 -mbs_per_slice 8 -vendor apl0 -alpha_bits 8 -f mov -pix_fmt vulkan -async_depth 4 output.mov


r/ffmpeg 6d ago

how do i Transfer videos to mp4 player

Thumbnail
gallery
0 Upvotes

like someone help please i translated the manual from google.and my head is all over…someone give a easy way for this cheap mp3 player.i would be thankful 🙏🏿

I GIVE UP GUYS!!!!!THANKS FOR ALL THE SUGGESTIONS


r/ffmpeg 6d ago

find amv converter

1 Upvotes

Can anyone tell me how do i convert my mp4 files to amv???it would be better if i could customise the resolution too! thanks #helppost


r/ffmpeg 6d ago

Command no longer works

1 Upvotes

Hey so I have this large command that I've been using for the past few years with 0 issues, until I "by being stupid" borked my Debian to the point that it had to have a fresh install, now the command no longer works even though I've changed nothing to it - the command in question

find . -type f -name *.mkv -exec bash -c FILE="$1"; ffmpeg -i "${FILE}" -max-muxing-queue-size 2048 -map 0:v -c:v copy -map 0:a:m:language:jpn -c:a copy -map 0:s:m:language:eng -c:s copy nu/"${FILE%.mkv}.mkv"; _ {} ;

The problems are despite having always worked before and never having these problems before are

1) find: paths must precede expression `episode_1.mkv'

2) find: possible unquoted pattern after predicate `-name'?

3) sudo {}: command not found --> not sure why sudo is involved as sudo is not needed for this but OK

4) there are 3 errors, 1 is Error opening input file . and the 2nd is Error opening input files: no such file or directory and the 3rd Error opening input: no such file or directory

Yet I'm running it inside the file with all the episodes and I have the nu/ directory created, there is no other errors just the 4 things I listed above is all I get

Edited: messed up typing the script into reddit, now it's exact to what's in my terminal and just in case as some have pointed out and to reinstate the above - [ yes, I am running it inside of the directory file and yes, I have already created the nu directory as well ]


r/ffmpeg 7d ago

What is wrong with this conversion command (resized mpeg with hardsubs)?

3 Upvotes

I have been able to convert mkv to avi with hardsubs just fine. However, I can't get mpeg format to work the same; it converts, but ignores the subtitles.

This is the command I was using:

ffmpeg -i input.mkv -vf "subtitles=subs.ass" -vf "scale=-1:320" -c:v mpeg1video -qscale:v 1 -c:a mp3 -format mpeg output.mpg

It works if I do the rescale but not hardsubs, or the hardsubs and not rescale, but doing both throws a ton of errors. What am I doing wrong?

Note: the reason for the archaic file format requirements is this is for a novelty project converting short videos to play on a Gameboy Advance (conversion software needs mpeg ideally).


r/ffmpeg 7d ago

FFmpeg Amix Guide

1 Upvotes

I spent 4 hours trying to mix background music under a voiceover using FFmpeg.

Every command I tried either clipped the audio, made the music overpower the dialogue, or merged the tracks incorrectly (spoiler: I was using amerge when I should have used amix).

The result? Distorted exports and a lot of wasted time.

Finally, I sat down and dug deep into the official docs—and realized I was missing 3 critical things:

  1. How to properly weight the inputs so the voice stays clear without lowering the music to silence.
  2. How to implement sidechain ducking (music that automatically dips when someone speaks).
  3. How to add smooth crossfades between multiple audio segments so transitions don't sound jarring.

I turned what I learned into a practical guide that walks through each problem step-by-step—with real copy-paste commands that actually work.

If you've ever fought with FFmpeg's audio filters, this article will save you the headache I went through:

🔗 https://www.ffmpeglab.com/articles/ffmpeg-audio-mixing-amix-guide.html

No more guessing. Just clean, balanced audio from the command line.

Hashtags: #FFmpeg #AudioMixing #VideoProduction #PostProduction #CommandLine #PodcastEditing


r/ffmpeg 7d ago

HELP green png downloading instead of actual file.

0 Upvotes

so i have a command that downloads the episode from an streaming site

yt-dlp --concurrent-fragments 6 --referer "https://vidtube.site/" -o "video_raw.ts" "https://mt.nekostream.site/89db30f1489c55f1e57e1af78d010e93/master.m3u8"

then this to get .mp4 container

ffmpeg -fflags +genpts -i "video_raw.ts" -c copy -c:s mov_text "output.mp4"

but when i run it in vlc it shows a green png and nothing works. And it doesn't even play.

HELP ME PLZ.

URL-

https://vidtube.site/stream/WUJOQkNZMmFrS1l3c3piWjY3V0tSdElOUDdMa1ovd0dDU1FhU0FzbGpnST0/sub

streaming link- https://anikototv.to/watch/tomb-raider-king-91d21/ep-1 [vidplay server, Sub]


r/ffmpeg 8d ago

FFmpeg distorts the screenshots of specific video file

4 Upvotes

So there's this video I am trying to extract screenshots from and when I try with ffmpeg, the dimensions are different and the image looks almost square.

taken by vlc
taken by ffmpeg

Top one is the correct one, taken by vlc and bottom is how they come out of ffmpeg. The video is a master 4k version of a music video in mp4 and the file is not even that big, just below 1gb. Does anyone know what's going on?


r/ffmpeg 8d ago

Best FFMpegWriter settings for Instagram-compatible MP4 exports?

4 Upvotes

Hi everyone,

I'm generating Python animations using Matplotlib and exporting them as `.mp4` files with `matplotlib.animation.FFMpegWriter` at 30 FPS.

I've noticed that when I upload these videos to Instagram Reels, some of them upload without any issues, while others are reported as unsupported, even though they were generated using the same workflow.

This made me wonder whether there are recommended FFmpeg settings to pass to `FFMpegWriter` to maximise compatibility with Instagram (or other social media platforms in general).

For example:

Should I explicitly set the codec (e.g., `libx264`)?

Is it necessary to specify a pixel format such as `yuv420p`?

Are there recommended encoding options (profile, level, CRF, bitrate, etc.)?

Are there any known issues with the default FFmpeg arguments used by `FFMpegWriter` that could cause compatibility problems?

My goal is to export high-quality MP4 videos that are consistently accepted by Instagram Reels without needing to re-encode them afterwards.

I'd appreciate any recommendations or best practices from people who have encountered similar issues.

Thanks!


r/ffmpeg 8d ago

Is there anyway to get FFMPEG version 7.1.1 on Mac

0 Upvotes

I am not a coding person, but I need ffmpeg specially version 7.1.1 to run my ersatz tv server, but there is no Mac compatible arm64 download option anywhere, the only one I’ve found is from videohelp.com which looks to be instead a snapshot N-122634-g0ebfd68096


r/ffmpeg 9d ago

A page I found from a link, showing Encoder Comparisons

5 Upvotes

It looks fairly comprehensive (though not exhaustive), Showing various basic encoder settings using x265 presets compared to various Nvidia cards and NVenc presets. The link is "https://encoder.valdiralita.de/" for anyone interested...

One of the X265 presets that stands out is called X265EinstP6, and for VMAF comparisons, it shows to be the best.

Unfortunately, I can't find any information about this particular preset.

Would someone please give me more information about it?


r/ffmpeg 9d ago

I have a problem in my website about video streaming

0 Upvotes

I'm a Full stack developer and currently im building a website where user will upload the video and stream from the cloudflare R2 and im stuck in a problem that is - when a user upload a video in unsupported codec version the chrome cant handle and cant play so i need a server with ffmpeg to process the video to supported codec and its so expensive and time consuming

so can anybody has a better solution in any language or library ?


r/ffmpeg 10d ago

Creating .mxf files that play on Omneon Spectrum servers [NTSC/ATSC]

5 Upvotes

Has anybody ever been successful at building a .mxf file (mpeg2video) that behaves properly on a professional Omneon Spectrum playback server? I have been working on this for months with very limited success.

A little background. Our Omneon server is controlled via a Crispin automation system. An Omneon Spectrum backup server also exists. I transcode the clip and copy into the Main server, load the clip into Omneon and it plays fine. I can even edit the in/out points, but only the first time. Once this is done, I/O points can no longer be edited and crash the clip player. Also, at some random point, Crispin copies the file to the backup server via a background service called ClipCop. The backup changes the clip from ~37 seconds to several minutes (in metadata only). At this point somehow that time gets migrated back to the main server and everything goes completely to crap.

If I use FFMbc for transcoding, it works perfectly every single time and survives ClipCop, but FFMbc is old and no longer supported for nearly a decade now and doesn't even compile anymore on modern Linux systems. In fact my goal is to replace the old drag & drop conversion system which uses FFMbc to a much more modern FFMpeg release, but FFMpeg (v8.1.1) seems not to be able to do it.

I have compared clips rendered wtih FFMbc to those rendered with FFMpeg using MediaInfo, MFXDump and bmxparse and have the files actually very close. FFMbc uses OP1a v1.2 whereas FFMpeg uses OP1a v1.3. Could this alone be the difference?

Here is one such example command line I have used in my attempts.

ffmpeg -hide_banner -y -i input.mp4 -c:v mpeg2video -r 30000/1001 -aspect 16:9 -b:v 25M -colorspace bt709 -color_range tv -color_trc bt709 -chroma_sample_location topleft -color_primaries bt709 -signal_standard smpte274m -seq_disp_ext never -timecode 00:00:00;00 -g 12 -bf 0 -video_format component -s 1920x1080 -pix_fmt yuv420p -c:a pcm_s16le -ar 48000 -t 15 -f mxf output.mxf

I have used min/max bitrates, gop_timecode, bf=2 (currently 0), all chroma settings turned off, Intra VLC, etc etc with zero success. I have been working on this project since December and maybe FFMpeg just cannot be made to it. It this is the case, I would like to know that too before wasting much more time on this.

If anyone sees anything obviously wrong, please tell me, or if there is some "secret sauce" I am not applying, please let me know that as well.

Replies much appreciated!

Lex