Re: [FFmpeg-user] Next Release
Hello all, Thanks for this thread, because I have recently published: - http://ffmpeg.org/pipermail/ffmpeg-devel/2021-January/274978.html I have requested new versions with CVE fixes: - https://cve.mitre.org/cgi-bin/cvekey.cgi?keyword=ffmpeg Last builds: - https://github.com/FFmpeg/FFmpeg/releases - Jul 11, 2020: 4.3.1 - Jul 9, 2020: 4.2.4 - Jul 7, 2020: 2.8.17 - Jul 4, 2020: 4.1.6 - Jul 3, 2020: 4.0.6 - Jul 3, 2020: 3.4.8 - Jul 2, 2020: 3.2.15 - Jun 15, 2020: 4.4-dev Regards, Neustradamus De : ffmpeg-user de la part de Carl Eugen Hoyos Envoyé : mardi 26 janvier 2021 18:09 À : FFmpeg user questions Objet : Re: [FFmpeg-user] Next Release Am Di., 26. Jan. 2021 um 10:33 Uhr schrieb Armin Hasitzka : > Given that FFmpeg has been released on an almost > monthly basis before that Nearly one year passed between 4.2 and 4.3. We recommend that all users download current FFmpeg git head as we lack the manpower to support other versions. Carl Eugen ___ ffmpeg-user mailing list ffmpeg-user@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-user To unsubscribe, visit link above, or email ffmpeg-user-requ...@ffmpeg.org with subject "unsubscribe". ___ ffmpeg-user mailing list ffmpeg-user@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-user To unsubscribe, visit link above, or email ffmpeg-user-requ...@ffmpeg.org with subject "unsubscribe".
Re: [FFmpeg-user] What is the usage for -cgop/+cgop and -g options.
On Fri, Jan 29, 2021 at 11:27 AM "zhilizhao(赵志立)" wrote: > > > > > On Jan 27, 2021, at 4:26 PM, Hongyi Zhao wrote: > > > > On Wed, Jan 27, 2021 at 10:52 AM pdr0 wrote: > >> > >> Hongyi Zhao wrote > >>> I noticed there are -cgop/+cgop and -g options used by ffmpeg. But I > >>> really can't figure out the usage of them. Any hints will be highly > >>> appreciated. > >> > >> -g is the maximum gop length (the maximum keyframe interval) . Some > >> codecs/settings have adaptive GOP and I frame placement, but it will never > >> exceed that value > > > > I've tried to search through the whole source code repo and still > > can't find any definitive explanation about this parameter. > > Use `ffmpeg -h full` for quick reference. > > For source code, ref. libavcodec//options_table.h Wonderful notes/hints, thanks a lot. Best regards, HY > > > > >> cgop is for specifying closed GOP > > > > Same for this one. > > > > Best > > -- > > Assoc. Prof. Hongyi Zhao > > Theory and Simulation of Materials > > Hebei Polytechnic University of Science and Technology engineering > > NO. 552 North Gangtie Road, Xingtai, China > > ___ > > ffmpeg-user mailing list > > ffmpeg-user@ffmpeg.org > > https://ffmpeg.org/mailman/listinfo/ffmpeg-user > > > > To unsubscribe, visit link above, or email > > ffmpeg-user-requ...@ffmpeg.org with subject "unsubscribe". > > ___ > ffmpeg-user mailing list > ffmpeg-user@ffmpeg.org > https://ffmpeg.org/mailman/listinfo/ffmpeg-user > > To unsubscribe, visit link above, or email > ffmpeg-user-requ...@ffmpeg.org with subject "unsubscribe". -- Assoc. Prof. Hongyi Zhao Theory and Simulation of Materials Hebei Polytechnic University of Science and Technology engineering NO. 552 North Gangtie Road, Xingtai, China ___ ffmpeg-user mailing list ffmpeg-user@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-user To unsubscribe, visit link above, or email ffmpeg-user-requ...@ffmpeg.org with subject "unsubscribe".
Re: [FFmpeg-user] What is the usage for -cgop/+cgop and -g options.
> On Jan 27, 2021, at 4:26 PM, Hongyi Zhao wrote: > > On Wed, Jan 27, 2021 at 10:52 AM pdr0 wrote: >> >> Hongyi Zhao wrote >>> I noticed there are -cgop/+cgop and -g options used by ffmpeg. But I >>> really can't figure out the usage of them. Any hints will be highly >>> appreciated. >> >> -g is the maximum gop length (the maximum keyframe interval) . Some >> codecs/settings have adaptive GOP and I frame placement, but it will never >> exceed that value > > I've tried to search through the whole source code repo and still > can't find any definitive explanation about this parameter. Use `ffmpeg -h full` for quick reference. For source code, ref. libavcodec//options_table.h > >> cgop is for specifying closed GOP > > Same for this one. > > Best > -- > Assoc. Prof. Hongyi Zhao > Theory and Simulation of Materials > Hebei Polytechnic University of Science and Technology engineering > NO. 552 North Gangtie Road, Xingtai, China > ___ > ffmpeg-user mailing list > ffmpeg-user@ffmpeg.org > https://ffmpeg.org/mailman/listinfo/ffmpeg-user > > To unsubscribe, visit link above, or email > ffmpeg-user-requ...@ffmpeg.org with subject "unsubscribe". ___ ffmpeg-user mailing list ffmpeg-user@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-user To unsubscribe, visit link above, or email ffmpeg-user-requ...@ffmpeg.org with subject "unsubscribe".
Re: [FFmpeg-user] minterpolate ...for Paul
Mark Filipak (ffmpeg) wrote > I've never heard of "optical flow errors". What could they be? (Got any > links to > explanations?) The artifacts in your video are optical flow errors :) If you've ever used it - you'd recognize these artifacts. There are very common There are about a dozen prototypical "fail" categories or common errors that plague all types of optical flow These are errors either of motion vectors, or object flow (object boundaries or "masks"), occlusion errors. Internet is full of examples, explanations. The topic is rather large, just search google, there is lots of info. If you have a specific question then ask. Sometimes you get clean interpolated frame results; but sometimes there are massive distracting errors. It varies by situation and sources. Your example has one of the common categories of "fail" where there are repeating patterns and textures. It falls under the "Picket Fence" fail . A prototypical tracking or dolly shot by a picket fence, or brick wall will come up with interpolation errors The peripheral edges error are common because there is less data beyond the periphery of the frame, for n-1, n+1 and the motion vectors are less accurate compared to the center of the frame Another common one is when objects pass over another. The flow masks aren't perfect and you end up with blobby edge artifacts around objects >>...For artifacts around frame edges, letterbox edges usually some form >> of padding is used. I don't think ffmpeg minterpolate has those. > > I've done that. The result was just okay. The slight riffling on the frame > boundaries during camera > panning isn't all that objectionable to me. It occurs to me that > minterpolute could queue frames and > look 'forward' to later frames in order to resolve boundary macroblock > artifacts -- afterall, it has > the motion vectors, eh? Some algorithms can use N-3, N-2, N-1, N, N+1, N+2, N+3, I don't think minterpolate can. More is not always better. Often you get more contamination with a larger "window" Sometimes just changing the blocksize can produce better (or worse) results. The problem is ffmpeg minterpolate is s slow, and you have no usable preview. Some of the other methods mentioned earlier do have previews - so you can tweak settings, preview, readjust etc -- Sent from: http://ffmpeg-users.933282.n4.nabble.com/ ___ ffmpeg-user mailing list ffmpeg-user@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-user To unsubscribe, visit link above, or email ffmpeg-user-requ...@ffmpeg.org with subject "unsubscribe".
Re: [FFmpeg-user] minterpolate performance & alternative
Mark Filipak (ffmpeg) wrote > But perhaps by "process in parallel" you mean something else, eh? > ...something I'm unaware of. Can > you expand on that? I mean "divide and conquer" to use all resources. If you're at 20% CPU usage, you can run 4-5 processes eg. Split video in to 4-5 segments. Process each simultaneously, each to a lossless intermediate, so you're at 100% CPU usage. Then reassemble and encode to your final format -- Sent from: http://ffmpeg-users.933282.n4.nabble.com/ ___ ffmpeg-user mailing list ffmpeg-user@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-user To unsubscribe, visit link above, or email ffmpeg-user-requ...@ffmpeg.org with subject "unsubscribe".
Re: [FFmpeg-user] Tool to write ffmpeg strings
Hello Jason, unfortunately FF-Works doesn't support audio filters. Thanks for the suggest. BEst Il giorno gio 28 gen 2021 alle ore 18:16 Jason Brodkey ha scritto: > When I was trying to wrap my head around ffmpeg for some things, I used > FF-Works on the Mac. > It allows for some fairly complex situations and, in the logs, provides the > ffmpeg command that it used to get there. > My need at the time was video specific. I'm unsure if it supports all the > audio filters you're looking for. > > -Jason > > > > On Thu, Jan 28, 2021 at 2:17 AM Marco Mircoli > wrote: > > > Hello, > > thanks for the reply. > > The point is that handbrake doesn't let me access audio filters commands. > > I need to use tools like > > - 70HZ high pass filter > > - expander / noise gate > > - equalizer > > - compressor > > - exciter > > - de-esser > > - limiter > > and handbrake hasn't control over it...or am I wrong? > > Thanks. > > S. > > > > > > Il giorno gio 28 gen 2021 alle ore 10:24 Chris Miceli < > ch...@miceli.net.au > > > > > ha scritto: > > > > > Hi Marco, > > > > > > If you are a user of MacOS then have a look at Handbrake. I think there > > is > > > a windows version as well but as a Linux user I'm not 100% sure. > > > > > > If you hunt for "handbrake alternative for X" where X is your operating > > > system then there should be something! > > > > > > Thanks, > > > Chris > > > > > > On Thu, Jan 28, 2021, 8:08 PM Marco Mircoli > > wrote: > > > > > > > Hello, > > > > my problem is that I am not a programmer (I'm a sound designer) > > > > I would like to approach FFMPEG. > > > > It's hard for me to learn the syntax of ffmpeg. > > > > Do you know if is there a tool that let me use ffmpeg filters in a > > > frontend > > > > environment and shows me the command line of what I'm doing? > > > > Thanks in advance. > > > > S. > > > > ___ > > > > ffmpeg-user mailing list > > > > ffmpeg-user@ffmpeg.org > > > > https://ffmpeg.org/mailman/listinfo/ffmpeg-user > > > > > > > > To unsubscribe, visit link above, or email > > > > ffmpeg-user-requ...@ffmpeg.org with subject "unsubscribe". > > > ___ > > > ffmpeg-user mailing list > > > ffmpeg-user@ffmpeg.org > > > https://ffmpeg.org/mailman/listinfo/ffmpeg-user > > > > > > To unsubscribe, visit link above, or email > > > ffmpeg-user-requ...@ffmpeg.org with subject "unsubscribe". > > ___ > > ffmpeg-user mailing list > > ffmpeg-user@ffmpeg.org > > https://ffmpeg.org/mailman/listinfo/ffmpeg-user > > > > To unsubscribe, visit link above, or email > > ffmpeg-user-requ...@ffmpeg.org with subject "unsubscribe". > ___ > ffmpeg-user mailing list > ffmpeg-user@ffmpeg.org > https://ffmpeg.org/mailman/listinfo/ffmpeg-user > > To unsubscribe, visit link above, or email > ffmpeg-user-requ...@ffmpeg.org with subject "unsubscribe". ___ ffmpeg-user mailing list ffmpeg-user@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-user To unsubscribe, visit link above, or email ffmpeg-user-requ...@ffmpeg.org with subject "unsubscribe".
Re: [FFmpeg-user] Send ffmpeg segments to stdout so they can be processed by next pipe
When I think about it now it might be even better then what I was trying to do :-) Thank you for suggesting this I will give it a go Cheers Simon > On 29 Jan 2021, at 00:05, Mark Filipak (ffmpeg) wrote: > > Would it be possible for ffmpeg to output raw video frames, one file per > frame, then the next (continuously running) process to pick up the files as > they are created, to process them and then delete the originals on the fly? > Could that be done in a script? ___ ffmpeg-user mailing list ffmpeg-user@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-user To unsubscribe, visit link above, or email ffmpeg-user-requ...@ffmpeg.org with subject "unsubscribe".
Re: [FFmpeg-user] Send ffmpeg segments to stdout so they can be processed by next pipe
On 01/28/2021 06:30 PM, Szymon Danielczyk wrote: I have a pipeline like this in which I simulate a video stream ffmpeg -i input.mov -f matroska - |\ ffmpeg -i - -codec copy -map 0 -reset_timestamps 1 \ -segment_time 10 -f segment output/out%03d.mov which works and it is splitting the input video into 10 sec long segment files saved into output folder. Now I would like to instead tell ffmpeg to pass them to stdout so in the next pipe I can hook up a script to decide what to do which each segment based on a presence of another file ffmpeg -i input.mov -f matroska - |\ ffmpeg -i - -codec copy -map 0 -reset_timestamps 1 \ -segment_time 10 -f segment |\ NEXT_PIPE_SCRIPT The NEXT_PIPE_SCRIPT should be something like { TEST_FILE=".do" if [ -f "$TEST_FILE" ]; then echo "$TEST_FILE exists going to redirect videos to a folder" >> output/$RANDOM.mov else >> /dev/null fi } The idea is that depends if the file is there or not some segments should go to /dev/null and some to the output folder. After much googling I've found this old thread which sais that writing segmented files to stdout is not supported https://ffmpeg.org/pipermail/ffmpeg-user/2017-November/037718.html Also I do not see any example in the ffmpeg documentation of outputing segments to stdout. If this is true will anyone have an idea how to solve it in some other way? Would it be possible for ffmpeg to output raw video frames, one file per frame, then the next (continuously running) process to pick up the files as they are created, to process them and then delete the originals on the fly? Could that be done in a script? ___ ffmpeg-user mailing list ffmpeg-user@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-user To unsubscribe, visit link above, or email ffmpeg-user-requ...@ffmpeg.org with subject "unsubscribe".
Re: [FFmpeg-user] minterpolate performance & alternative
On 01/28/2021 05:02 PM, pdr0 wrote: Mark Filipak (ffmpeg) wrote Is there a way to coax minterpolate to expand its hardware usage? Not directly; One way might be to split along cadence boundaries and process in parallel (e.g. 4x), then reassemble I've tried that. In fact, that's the first thing I tried, 5 months ago. The cadence is (6/1001FPS)/(24000/1001FPS) = 2.5 frames, hence: telecine=pattern=55. Using frame notation: +--- 1/6 second ---+ [A.a__][B.b__][C.c__][D.d__] 24FPS [A.a_][A.a_][A.b_][B.b_][B.b_][C.c_][C.c_][C.d_][D.d_][D.d_] 60FPS (telecine55) cccc combed frames telecine55 is 24 (existing) pictures per second, 60FPS transport. minterpolate is 60 (interpolated) pictures per second, 60FPS transport. I prefer minterpolate of course, but it's soo slow -- 3 days for a 2-1/2 hour video. telecine55 is relatively quick, and the combing is not so bad (20% @ 12Hz) as ordinary telecine (40% @ 6Hz). But perhaps by "process in parallel" you mean something else, eh? ...something I'm unaware of. Can you expand on that? Thanks! ___ ffmpeg-user mailing list ffmpeg-user@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-user To unsubscribe, visit link above, or email ffmpeg-user-requ...@ffmpeg.org with subject "unsubscribe".
[FFmpeg-user] Send ffmpeg segments to stdout so they can be processed by next pipe
I have a pipeline like this in which I simulate a video stream ffmpeg -i input.mov -f matroska - |\ ffmpeg -i - -codec copy -map 0 -reset_timestamps 1 \ -segment_time 10 -f segment output/out%03d.mov which works and it is splitting the input video into 10 sec long segment files saved into output folder. Now I would like to instead tell ffmpeg to pass them to stdout so in the next pipe I can hook up a script to decide what to do which each segment based on a presence of another file ffmpeg -i input.mov -f matroska - |\ ffmpeg -i - -codec copy -map 0 -reset_timestamps 1 \ -segment_time 10 -f segment |\ NEXT_PIPE_SCRIPT The NEXT_PIPE_SCRIPT should be something like { TEST_FILE=".do" if [ -f "$TEST_FILE" ]; then echo "$TEST_FILE exists going to redirect videos to a folder" >> output/$RANDOM.mov else >> /dev/null fi } The idea is that depends if the file is there or not some segments should go to /dev/null and some to the output folder. After much googling I've found this old thread which sais that writing segmented files to stdout is not supported https://ffmpeg.org/pipermail/ffmpeg-user/2017-November/037718.html Also I do not see any example in the ffmpeg documentation of outputing segments to stdout. If this is true will anyone have an idea how to solve it in some other way? Cheers Simon ___ ffmpeg-user mailing list ffmpeg-user@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-user To unsubscribe, visit link above, or email ffmpeg-user-requ...@ffmpeg.org with subject "unsubscribe".
Re: [FFmpeg-user] minterpolate ...for Paul
On 01/28/2021 02:55 PM, pdr0 wrote: Mark Filipak (ffmpeg) wrote In the video, Look at the behavior of the dots on the gate behind the police here: 0:5.422 to 0:10.127. Look especially at the top of roof of the building here: 0:12.012 to 0:12.179, for apparent macroblock errors. Here's the video: https://www.dropbox.com/t/8sKE0jEguUxQgPjD Here's the command line: ffmpeg -i "source=24FPS.mkv" -map 0 -filter_complex "minterpolate=fps=6/1001:mi_mode=mci:mc_mode=obmc:scd=fdiff:scd_threshold=10:vsbmc=1:search_param=20" -codec:v libx265 -x265-params "crf=20:qcomp=0.60" -codec:a copy -codec:s copy minterpolate.mkv Those are not macroblock errors. They are typical optical flow errors... Thank you, pdr0. I've never heard of "optical flow errors". What could they be? (Got any links to explanations?) To me, the visual manifestation appears to be math errors inside the freshly interpolated macroblocks. The reason I 'say' that is because, though they appear to be sporadic, when a macroblock anomaly pops up, the effect is vary regular and persistent (not fleeting). In other words, the effect displays mathematical regularity. ... Motion interpolation is never perfect , there are always some types artifacts, occlusions, edge morphing Not with the regularity and persistence (longevity) I'm seeing. There are several other methods and algorithms you can use outside of FFmpeg, some are GPU accelerated. e.g. svpflow, mvtools2, DAIN, twixtor, resolve. ... Thanks. That gives me something specific for search. ...For artifacts around frame edges, letterbox edges usually some form of padding is used. I don't think ffmpeg minterpolate has those. I've done that. The result was just okay. The slight riffling on the frame boundaries during camera panning isn't all that objectionable to me. It occurs to me that minterpolute could queue frames and look 'forward' to later frames in order to resolve boundary macroblock artifacts -- afterall, it has the motion vectors, eh? That 'said', the slight riffling on the frame boundaries (example: At the end as the red tile tiles atop the wall come into view. If you slow the playback, it becomes quite evident that the same math errors are occurring there, but only sporadically, not constantly. Look at the offending macroblocks carefully. As the scene pans outside those macroblocks, the scene inside the macroblocks gets 'stuck'. Since there was no time restraint on transcode, the 'stuck' symptom must be math errors -- in the case of segmented (macroblock) issues, math controls the logic. ___ ffmpeg-user mailing list ffmpeg-user@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-user To unsubscribe, visit link above, or email ffmpeg-user-requ...@ffmpeg.org with subject "unsubscribe".
Re: [FFmpeg-user] minterpolate performance & alternative
Mark Filipak (ffmpeg) wrote > Suppose I explain like this: Take any of the various edge-detecting, > deinterlacing filters and, for > each line-pair (y & y+1), align both output lines (y & y+1) to the mean of > the input's > line(y).Y-edge & line(y+1).Y-edge. To do that, only single line-pairs are > processed (not between > line-pairs), and no motion vector interpolation is needed. There is no decomb or deinterlacing filter that does this. How you would do is deinterlace and optical flow. These are separate operations Motion vectors are required, otherwise - how else would you determine where an object moves ? How else would you get the correct "mean" and position? A sobel operator looks at the current frame (or field). It's a spatial operation. There is no relationship between the previous or next. Or if you want, even scanlines are independent from odd scanlines. The relationship is the motion vector. Y and Y+1 are even and odd scanlines. They are combed in the current frame because they come from different points in time . T=0, T=1. In this case, your "spatial mean" is also a "temporal mean" . eg. As an object or pixel moves from position x=1 at T=0 to x=5 at T=1 in the next field. The spatial mean is x=3 at T=0.5. Instead of time T=0, T=1, you want T=0.5, assuming linear interpolation. This is optical flow. The inbetween point in time, and it's resulting data. -- Sent from: http://ffmpeg-users.933282.n4.nabble.com/ ___ ffmpeg-user mailing list ffmpeg-user@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-user To unsubscribe, visit link above, or email ffmpeg-user-requ...@ffmpeg.org with subject "unsubscribe".
Re: [FFmpeg-user] minterpolate performance & alternative
On 01/28/2021 04:34 PM, Paul B Mahol wrote: On Thu, Jan 28, 2021 at 10:23 PM Mark Filipak (ffmpeg) wrote: Synopsis: I seek to use minterpolate to take advantage of its superior output. I present some performance issues followed by an alternative filter_complex. So, this presentation necessarily addresses 2 subjects. Problem: I'm currently transcoding a 2:43:05 1920x1080, 24FPS progressive video to 60FPS via minterpolate filter. Apparently, the transcode will take a little more than 3 days. Hardware: There are 4 CPU cores (with 2 threads, each) that run at 3.6 GHz. There is also an NVIDIA GTX 980M GPU having 1536 CUDA cores with a driver that implements the Optimus, CUDA-as-coprocessors architecture. Performance: During the transcode, ffmpeg is consuming only between 10% & 20% of the CPU. It appears to be single-threaded, and it appears to not be using Optimus at all. Is there a way to coax minterpolate to expand its hardware usage? Alternative filter_complex: minterpolate converts 24FPS to 60FPS by interpolating every frame via motion vectors to produce a 60 picture/second stream in a 60FPS transport. It does a truly amazing job, but without expanded hardware usage, it takes too long to do it. A viable alternative is to 55 telecine the source (which simply duplicates the n%5!=2 frames) while interpolating solely the n%5==2 frames. That should take much less time and would produce a 24 picture/second stream in a 60FPS transport -- totally acceptable. The problem is that motion vector interpolation requires that minterpolate be 'split' out and run in parallel with the main path in the filter_complex so that the interpolated frames can be plucked out (n%5==2) and interleaved at the end of the filter_complex. That doesn't make much sense because it doesn't decrease processing (or processing time) and, if the fully motion-interpolated stream is produced anyway, then output it directly instead of interleaving. What's needed is an interpolation alternative to minterpolate. Alternative Interpolation: 55 telecine with no interpolation or smoothing works well even though the n%5==2 frames are combed but decombing is desired. The problem with that is: I can't find a deinterlace filter that does pixel interpolation without reintroducing some telecine judder. The issue involves spacial alignment of the odd & even lines in the existing filters. Some existing filters align the decombed lines with the input's top field, some align the decombed lines with the input's bottom field. What's desired is a filter that aligns the decombed lines with the spacial mean. I suggest that the Sobel might be appropriate for the decombing (or at least, that the Sobel can be employed to visualize what's desired). Sobel of line y: __/\_/\_ (edges) Sobel of line y+1: __/\_/\_ Desired output: line y: /\_/\___ (aligned to mean) line y+1: /\_/\___ (aligned to mean) I could find this: line y: __/\_/\_ line y+1: __/\_/\_ (aligned to top line edges) and I could find this: line y: __/\_/\_ (aligned to bottom line edges) line y+1: __/\_/\_ Sorry, but I can not decipher above stuff. Does anybody else can? I assume you refer to the "Alternative Interpolation" section. Suppose I explain like this: Take any of the various edge-detecting, deinterlacing filters and, for each line-pair (y & y+1), align both output lines (y & y+1) to the mean of the input's line(y).Y-edge & line(y+1).Y-edge. To do that, only single line-pairs are processed (not between line-pairs), and no motion vector interpolation is needed. ___ ffmpeg-user mailing list ffmpeg-user@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-user To unsubscribe, visit link above, or email ffmpeg-user-requ...@ffmpeg.org with subject "unsubscribe".
Re: [FFmpeg-user] minterpolate performance & alternative
Paul B Mahol wrote > On Thu, Jan 28, 2021 at 10:23 PM Mark Filipak (ffmpeg) > markfilipak@ > > wrote: > >> Synopsis: >> >> I seek to use minterpolate to take advantage of its superior output. I >> present some performance >> issues followed by an alternative filter_complex. So, this presentation >> necessarily addresses 2 >> subjects. >> >> Problem: >> >> I'm currently transcoding a 2:43:05 1920x1080, 24FPS progressive video to >> 60FPS via minterpolate >> filter. Apparently, the transcode will take a little more than 3 days. >> >> Hardware: >> >> There are 4 CPU cores (with 2 threads, each) that run at 3.6 GHz. There >> is >> also an NVIDIA GTX 980M >> GPU having 1536 CUDA cores with a driver that implements the Optimus, >> CUDA-as-coprocessors architecture. >> >> Performance: >> >> During the transcode, ffmpeg is consuming only between 10% & 20% of the >> CPU. It appears to be >> single-threaded, and it appears to not be using Optimus at all. >> >> Is there a way to coax minterpolate to expand its hardware usage? >> >> Alternative filter_complex: >> >> minterpolate converts 24FPS to 60FPS by interpolating every frame via >> motion vectors to produce a 60 >> picture/second stream in a 60FPS transport. It does a truly amazing job, >> but without expanded >> hardware usage, it takes too long to do it. >> >> A viable alternative is to 55 telecine the source (which simply >> duplicates >> the n%5!=2 frames) while >> interpolating solely the n%5==2 frames. That should take much less time >> and would produce a 24 >> picture/second stream in a 60FPS transport -- totally acceptable. >> >> The problem is that motion vector interpolation requires that >> minterpolate >> be 'split' out and run in >> parallel with the main path in the filter_complex so that the >> interpolated >> frames can be plucked out >> (n%5==2) and interleaved at the end of the filter_complex. That doesn't >> make much sense because it >> doesn't decrease processing (or processing time) and, if the fully >> motion-interpolated stream is >> produced anyway, then output it directly instead of interleaving. What's >> needed is an interpolation >> alternative to minterpolate. >> >> Alternative Interpolation: >> >> 55 telecine with no interpolation or smoothing works well even though the >> n%5==2 frames are combed >> but decombing is desired. The problem with that is: I can't find a >> deinterlace filter that does >> pixel interpolation without reintroducing some telecine judder. The issue >> involves spacial alignment >> of the odd & even lines in the existing filters. >> >> Some existing filters align the decombed lines with the input's top >> field, >> some align the decombed >> lines with the input's bottom field. What's desired is a filter that >> aligns the decombed lines with >> the spacial mean. I suggest that the Sobel might be appropriate for the >> decombing (or at least, that >> the Sobel can be employed to visualize what's desired). >> >> Sobel of line y: __/\_/\_ (edges) >> Sobel of line y+1: __/\_/\_ >> Desired output: >> line y: /\_/\___ (aligned to mean) >> line y+1: /\_/\___ (aligned to mean) >> I could find this: >> line y: __/\_/\_ >> line y+1: __/\_/\_ (aligned to top line >> edges) >> and I could find this: >> line y: __/\_/\_ (aligned to bottom >> line edges) >> line y+1: __/\_/\_ >> >> > Sorry, but I can not decipher above stuff. Does anybody else can? He wants an "inbetween" scanline (and perhaps resampled to a full frame) for the target frame . Y=0 and Y=1 represent scanlines from 2 different times (fields from 2 different times). He wants something in the middle, such as Y=0.5. ie. A retimed in-between frame , perhaps using optical flow The other option he had been using was blend deinterlacing , a vertical blur between Y=0 and Y=1, which combines both times, but obvious problems with blurring and ghosting (The best option, hands down, is a judderless display, so you don't have all these artifacts or blurring. Very inexpensive nowadays) -- Sent from: http://ffmpeg-users.933282.n4.nabble.com/ ___ ffmpeg-user mailing list ffmpeg-user@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-user To unsubscribe, visit link above, or email ffmpeg-user-requ...@ffmpeg.org with subject "unsubscribe".
Re: [FFmpeg-user] minterpolate performance & alternative
Mark Filipak (ffmpeg) wrote > Is there a way to coax minterpolate to expand its hardware usage? Not directly; One way might be to split along cadence boundaries and process in parallel (e.g. 4x), then reassemble (There are other optical flow solutions that use GPU in other software , and some are much faster. But all of them are prone to typical artifacts, but some are slightly better than others) -- Sent from: http://ffmpeg-users.933282.n4.nabble.com/ ___ ffmpeg-user mailing list ffmpeg-user@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-user To unsubscribe, visit link above, or email ffmpeg-user-requ...@ffmpeg.org with subject "unsubscribe".
Re: [FFmpeg-user] minterpolate performance & alternative
On Thu, Jan 28, 2021 at 10:23 PM Mark Filipak (ffmpeg) wrote: > Synopsis: > > I seek to use minterpolate to take advantage of its superior output. I > present some performance > issues followed by an alternative filter_complex. So, this presentation > necessarily addresses 2 > subjects. > > Problem: > > I'm currently transcoding a 2:43:05 1920x1080, 24FPS progressive video to > 60FPS via minterpolate > filter. Apparently, the transcode will take a little more than 3 days. > > Hardware: > > There are 4 CPU cores (with 2 threads, each) that run at 3.6 GHz. There is > also an NVIDIA GTX 980M > GPU having 1536 CUDA cores with a driver that implements the Optimus, > CUDA-as-coprocessors architecture. > > Performance: > > During the transcode, ffmpeg is consuming only between 10% & 20% of the > CPU. It appears to be > single-threaded, and it appears to not be using Optimus at all. > > Is there a way to coax minterpolate to expand its hardware usage? > > Alternative filter_complex: > > minterpolate converts 24FPS to 60FPS by interpolating every frame via > motion vectors to produce a 60 > picture/second stream in a 60FPS transport. It does a truly amazing job, > but without expanded > hardware usage, it takes too long to do it. > > A viable alternative is to 55 telecine the source (which simply duplicates > the n%5!=2 frames) while > interpolating solely the n%5==2 frames. That should take much less time > and would produce a 24 > picture/second stream in a 60FPS transport -- totally acceptable. > > The problem is that motion vector interpolation requires that minterpolate > be 'split' out and run in > parallel with the main path in the filter_complex so that the interpolated > frames can be plucked out > (n%5==2) and interleaved at the end of the filter_complex. That doesn't > make much sense because it > doesn't decrease processing (or processing time) and, if the fully > motion-interpolated stream is > produced anyway, then output it directly instead of interleaving. What's > needed is an interpolation > alternative to minterpolate. > > Alternative Interpolation: > > 55 telecine with no interpolation or smoothing works well even though the > n%5==2 frames are combed > but decombing is desired. The problem with that is: I can't find a > deinterlace filter that does > pixel interpolation without reintroducing some telecine judder. The issue > involves spacial alignment > of the odd & even lines in the existing filters. > > Some existing filters align the decombed lines with the input's top field, > some align the decombed > lines with the input's bottom field. What's desired is a filter that > aligns the decombed lines with > the spacial mean. I suggest that the Sobel might be appropriate for the > decombing (or at least, that > the Sobel can be employed to visualize what's desired). > > Sobel of line y: __/\_/\_ (edges) > Sobel of line y+1: __/\_/\_ > Desired output: > line y: /\_/\___ (aligned to mean) > line y+1: /\_/\___ (aligned to mean) > I could find this: > line y: __/\_/\_ > line y+1: __/\_/\_ (aligned to top line > edges) > and I could find this: > line y: __/\_/\_ (aligned to bottom > line edges) > line y+1: __/\_/\_ > > Sorry, but I can not decipher above stuff. Does anybody else can? > Does such a decomb filter exist? I've tested every deinterlacing filter, > and I've failed to find one. > > Thank you for reading all this. I'm sorry it's so long. > > Regards, > Mark. > -- > Someone's sneaking in and turning up the range so that my food burns. > I'm sure of it. > And the older I get, the more sure of it I become. > ___ > ffmpeg-user mailing list > ffmpeg-user@ffmpeg.org > https://ffmpeg.org/mailman/listinfo/ffmpeg-user > > To unsubscribe, visit link above, or email > ffmpeg-user-requ...@ffmpeg.org with subject "unsubscribe". ___ ffmpeg-user mailing list ffmpeg-user@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-user To unsubscribe, visit link above, or email ffmpeg-user-requ...@ffmpeg.org with subject "unsubscribe".
[FFmpeg-user] minterpolate performance & alternative
Synopsis: I seek to use minterpolate to take advantage of its superior output. I present some performance issues followed by an alternative filter_complex. So, this presentation necessarily addresses 2 subjects. Problem: I'm currently transcoding a 2:43:05 1920x1080, 24FPS progressive video to 60FPS via minterpolate filter. Apparently, the transcode will take a little more than 3 days. Hardware: There are 4 CPU cores (with 2 threads, each) that run at 3.6 GHz. There is also an NVIDIA GTX 980M GPU having 1536 CUDA cores with a driver that implements the Optimus, CUDA-as-coprocessors architecture. Performance: During the transcode, ffmpeg is consuming only between 10% & 20% of the CPU. It appears to be single-threaded, and it appears to not be using Optimus at all. Is there a way to coax minterpolate to expand its hardware usage? Alternative filter_complex: minterpolate converts 24FPS to 60FPS by interpolating every frame via motion vectors to produce a 60 picture/second stream in a 60FPS transport. It does a truly amazing job, but without expanded hardware usage, it takes too long to do it. A viable alternative is to 55 telecine the source (which simply duplicates the n%5!=2 frames) while interpolating solely the n%5==2 frames. That should take much less time and would produce a 24 picture/second stream in a 60FPS transport -- totally acceptable. The problem is that motion vector interpolation requires that minterpolate be 'split' out and run in parallel with the main path in the filter_complex so that the interpolated frames can be plucked out (n%5==2) and interleaved at the end of the filter_complex. That doesn't make much sense because it doesn't decrease processing (or processing time) and, if the fully motion-interpolated stream is produced anyway, then output it directly instead of interleaving. What's needed is an interpolation alternative to minterpolate. Alternative Interpolation: 55 telecine with no interpolation or smoothing works well even though the n%5==2 frames are combed but decombing is desired. The problem with that is: I can't find a deinterlace filter that does pixel interpolation without reintroducing some telecine judder. The issue involves spacial alignment of the odd & even lines in the existing filters. Some existing filters align the decombed lines with the input's top field, some align the decombed lines with the input's bottom field. What's desired is a filter that aligns the decombed lines with the spacial mean. I suggest that the Sobel might be appropriate for the decombing (or at least, that the Sobel can be employed to visualize what's desired). Sobel of line y: __/\_/\_ (edges) Sobel of line y+1: __/\_/\_ Desired output: line y: /\_/\___ (aligned to mean) line y+1: /\_/\___ (aligned to mean) I could find this: line y: __/\_/\_ line y+1: __/\_/\_ (aligned to top line edges) and I could find this: line y: __/\_/\_ (aligned to bottom line edges) line y+1: __/\_/\_ Does such a decomb filter exist? I've tested every deinterlacing filter, and I've failed to find one. Thank you for reading all this. I'm sorry it's so long. Regards, Mark. -- Someone's sneaking in and turning up the range so that my food burns. I'm sure of it. And the older I get, the more sure of it I become. ___ ffmpeg-user mailing list ffmpeg-user@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-user To unsubscribe, visit link above, or email ffmpeg-user-requ...@ffmpeg.org with subject "unsubscribe".
Re: [FFmpeg-user] minterpolate ...for Paul
Mark Filipak (ffmpeg) wrote > > In the video, > > Look at the behavior of the dots on the gate behind the police here: > 0:5.422 to 0:10.127. > > Look especially at the top of roof of the building here: 0:12.012 to > 0:12.179, for apparent > macroblock errors. > > Here's the video: > > https://www.dropbox.com/t/8sKE0jEguUxQgPjD > > Here's the command line: > > ffmpeg -i "source=24FPS.mkv" -map 0 -filter_complex > "minterpolate=fps=6/1001:mi_mode=mci:mc_mode=obmc:scd=fdiff:scd_threshold=10:vsbmc=1:search_param=20" > > -codec:v libx265 -x265-params "crf=20:qcomp=0.60" -codec:a copy -codec:s > copy minterpolate.mkv Those are not macroblock errors. They are typical optical flow errors. Motion interpolation is never perfect , there are always some types artifacts, occlusions, edge morphing There are several other methods and algorithms you can use outside of FFmpeg, some are GPU accelerated. e.g. svpflow, mvtools2, DAIN, twixtor, resolve. For artifacts around frame edges, letterbox edges usually some form of padding is used. I don't think ffmpeg minterpolate has those. -- Sent from: http://ffmpeg-users.933282.n4.nabble.com/ ___ ffmpeg-user mailing list ffmpeg-user@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-user To unsubscribe, visit link above, or email ffmpeg-user-requ...@ffmpeg.org with subject "unsubscribe".
Re: [FFmpeg-user] minterpolate problem
On 01/27/2021 03:16 AM, list+ffmpeg-u...@jdlh.com wrote: This is the part of the minterpolate video filter which defines the options: https://github.com/FFmpeg/FFmpeg/blob/master/libavfilter/vf_minterpolate.c#L205-L235 [The following looks better in a fixed-pitch font.] static const AVOption minterpolate_options[] = { { "fps", "output's frame rate", OFFSET(frame_rate), AV_OPT_TYPE_VIDEO_RATE, {.str = "60"}, 0, INT_MAX, FLAGS }, { "mi_mode", "motion interpolation mode", OFFSET(mi_mode), AV_OPT_TYPE_INT, {.i64 = MI_MODE_MCI}, MI_MODE_DUP, MI_MODE_MCI, FLAGS, "mi_mode" }, CONST("dup", "duplicate frames", MI_MODE_DUP, "mi_mode"), CONST("blend", "blend frames", MI_MODE_BLEND, "mi_mode"), CONST("mci", "motion compensated interpolation", MI_MODE_MCI, "mi_mode"), { "mc_mode", "motion compensation mode", OFFSET(mc_mode), AV_OPT_TYPE_INT, {.i64 = MC_MODE_OBMC}, MC_MODE_OBMC, MC_MODE_AOBMC, FLAGS, "mc_mode" }, CONST("obmc", "overlapped block motion compensation", MC_MODE_OBMC, "mc_mode"), CONST("aobmc", "adaptive overlapped block motion compensation", MC_MODE_AOBMC, "mc_mode"), { "me_mode", "motion estimation mode", OFFSET(me_mode), AV_OPT_TYPE_INT, {.i64 = ME_MODE_BILAT}, ME_MODE_BIDIR, ME_MODE_BILAT, FLAGS, "me_mode" }, CONST("bidir", "bidirectional motion estimation", ME_MODE_BIDIR, "me_mode"), CONST("bilat", "bilateral motion estimation", ME_MODE_BILAT, "me_mode"), { "me", "motion estimation method", OFFSET(me_method), AV_OPT_TYPE_INT, {.i64 = AV_ME_METHOD_EPZS}, AV_ME_METHOD_ESA, AV_ME_METHOD_UMH, FLAGS, "me" }, CONST("esa", "exhaustive search", AV_ME_METHOD_ESA, "me"), CONST("tss", "three step search", AV_ME_METHOD_TSS, "me"), CONST("tdls", "two dimensional logarithmic search", AV_ME_METHOD_TDLS, "me"), CONST("ntss", "new three step search", AV_ME_METHOD_NTSS, "me"), CONST("fss", "four step search", AV_ME_METHOD_FSS, "me"), CONST("ds", "diamond search", AV_ME_METHOD_DS, "me"), CONST("hexbs", "hexagon-based search", AV_ME_METHOD_HEXBS, "me"), CONST("epzs", "enhanced predictive zonal search", AV_ME_METHOD_EPZS, "me"), CONST("umh", "uneven multi-hexagon search", AV_ME_METHOD_UMH, "me"), { "mb_size", "macroblock size", OFFSET(mb_size), AV_OPT_TYPE_INT, {.i64 = 16}, 4, 16, FLAGS }, { "search_param", "search parameter", OFFSET(search_param), AV_OPT_TYPE_INT, {.i64 = 32}, 4, INT_MAX, FLAGS }, { "vsbmc", "variable-size block motion compensation", OFFSET(vsbmc), AV_OPT_TYPE_INT, {.i64 = 0}, 0, 1, FLAGS }, { "scd", "scene change detection method", OFFSET(scd_method), AV_OPT_TYPE_INT, {.i64 = SCD_METHOD_FDIFF}, SCD_METHOD_NONE, SCD_METHOD_FDIFF, FLAGS, "scene" }, CONST("none", "disable detection", SCD_METHOD_NONE, "scene"), CONST("fdiff", "frame difference", SCD_METHOD_FDIFF, "scene"), { "scd_threshold", "scene change threshold", OFFSET(scd_threshold), AV_OPT_TYPE_DOUBLE, {.dbl = 10.}, 0, 100.0, FLAGS }, { NULL } }; What that means: There is an option, "fps", which means "output's frame rate". It can (I believe) take any frame rate value describe in 7.5 "Frame Rate" (http://ffmpeg.org/ffmpeg-all.html#Video-rate), including integers, rational numbers, and 8 special names (because "AV_OPT_TYPE_VIDEO_RATE"). The default value is 60 (because '{.str = "60"}'). There is an option, "mi_mode", which means "motion interpolation mode". It can take any of the following values: "dup", meaning "duplicate frames"; "blend", meaning "blend frames"; or "mci", meaning "motion compensated interpolation". The default value is "mci" (because '{.i64 = MI_MODE_MCI}' and 'CONST("mci" … MI_MODE_MCI'). There is an option, "mc_mode", which means "motion compensation mode". Reading the code elsewhere in that file, it seems that the filter only consults this option when "mi_mode"="mci". It can take any of the following values: "obmc", meaning "overlapped block motion compensation"; or "aobmc", meaning "adaptive overlapped block motion compensation". The default value is "obmc" (because '{.i64 = MC_MODE_OBMC}' and 'CONST("obmc" … MC_MODE_OBMC'). There is an option, "me_mode", which means "motion estimation mode". Reading the code elsewhere in that file, it seems that the filter only consults this option when "mi_mode"="mci". It can take any of the following values: "bidir", meaning "bidirectional motion estimation"; or "bilat", meaing "bilateral motion estimation". The default value is "bilat" (because '{.i64 = ME_MODE_BILAT}' and 'CONST("bilat" … ME_MODE_BILAT'). There is an option, "me", meaning "motion estimation method". Reading the code elsewhere in that file, it seems that the filter only consults this option when "mi_mode"="mci". It can take any
Re: [FFmpeg-user] minterpolate ...for Paul
On 01/28/2021 02:05 AM, Carl Eugen Hoyos wrote: Am 28.01.2021 um 07:26 schrieb Mark Filipak (ffmpeg) : I'm seeing problems with minterpolate that manifest as occasional visual errors in particular areas. Command line, complete, uncut console output and an input file missing. Carl Eugen In the video, Look at the behavior of the dots on the gate behind the police here: 0:5.422 to 0:10.127. Look especially at the top of roof of the building here: 0:12.012 to 0:12.179, for apparent macroblock errors. Here's the video: https://www.dropbox.com/t/8sKE0jEguUxQgPjD Here's the command line: ffmpeg -i "source=24FPS.mkv" -map 0 -filter_complex "minterpolate=fps=6/1001:mi_mode=mci:mc_mode=obmc:scd=fdiff:scd_threshold=10:vsbmc=1:search_param=20" -codec:v libx265 -x265-params "crf=20:qcomp=0.60" -codec:a copy -codec:s copy minterpolate.mkv Here's the report: ffmpeg started on 2021-01-27 at 19:04:32 Report written to "ffmpeg-20210127-190432.log" Log level: 32 Command line: ffmpeg -i "source=24FPS.mkv" -map 0 -filter_complex "minterpolate=fps=6/1001:mi_mode=mci:mc_mode=obmc:scd=fdiff:scd_threshold=10:vsbmc=1:search_param=20" -codec:v libx265 -x265-params "crf=20:qcomp=0.60" -codec:a copy -codec:s copy minterpolate.mkv ffmpeg version N-100851-g9f38fac053 Copyright (c) 2000-2021 the FFmpeg developers built with gcc 9.3-win32 (GCC) 20200320 configuration: --prefix=/ffbuild/prefix --pkg-config-flags=--static --pkg-config=pkg-config --cross-prefix=x86_64-w64-mingw32- --arch=x86_64 --target-os=mingw32 --enable-gpl --enable-version3 --disable-debug --disable-w32threads --enable-pthreads --enable-iconv --enable-zlib --enable-libxml2 --enable-libfreetype --enable-libfribidi --enable-gmp --enable-lzma --enable-fontconfig --enable-opencl --enable-libvmaf --enable-vulkan --enable-libvorbis --enable-amf --enable-libaom --enable-avisynth --enable-libdav1d --enable-libdavs2 --enable-ffnvcodec --enable-cuda-llvm --enable-libglslang --enable-libass --enable-libbluray --enable-libmp3lame --enable-libopus --enable-libtheora --enable-libvpx --enable-libwebp --enable-libmfx --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-librav1e --enable-librubberband --enable-schannel --enable-sdl2 --enable-libsoxr --enable-libsrt --enable-libsvtav1 --enable-libtwolame --enable-libuavs3d --enable-libvidstab --enable-libx264 --enable-libx26 libavutil 56. 64.100 / 56. 64.100 libavcodec 58.119.100 / 58.119.100 libavformat58. 65.101 / 58. 65.101 libavdevice58. 11.103 / 58. 11.103 libavfilter 7.100.100 / 7.100.100 libswscale 5. 8.100 / 5. 8.100 libswresample 3. 8.100 / 3. 8.100 libpostproc55. 8.100 / 55. 8.100 [matroska,webm @ 0224d68d6500] Could not find codec parameters for stream 3 (Subtitle: hdmv_pgs_subtitle (pgssub)): unspecified size Consider increasing the value for the 'analyzeduration' (0) and 'probesize' (500) options Input #0, matroska,webm, from 'source=24FPS.mkv': Metadata: encoder : libebml v1.4.0 + libmatroska v1.6.2 creation_time : 2021-01-23T03:12:17.00Z Duration: 00:00:20.11, start: 0.00, bitrate: 26228 kb/s Stream #0:0: Video: h264 (High), yuv420p(tv, bt709, progressive), 1920x1080 [SAR 1:1 DAR 16:9], 23.98 fps, 23.98 tbr, 1k tbn, 47.95 tbc (default) Metadata: BPS-eng : 24046529 DURATION-eng: 00:00:20.02000 NUMBER_OF_FRAMES-eng: 480 NUMBER_OF_BYTES-eng: 60176441 _STATISTICS_WRITING_APP-eng: mkvmerge v51.0.0 ('I Wish') 64-bit _STATISTICS_WRITING_DATE_UTC-eng: 2021-01-23 03:12:17 _STATISTICS_TAGS-eng: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES Stream #0:1(eng): Audio: dts (DTS-HD MA), 48000 Hz, stereo, s32p (24 bit) (default) Metadata: BPS-eng : 2085565 DURATION-eng: 00:00:20.09600 NUMBER_OF_FRAMES-eng: 1884 NUMBER_OF_BYTES-eng: 5238940 _STATISTICS_WRITING_APP-eng: mkvmerge v51.0.0 ('I Wish') 64-bit _STATISTICS_WRITING_DATE_UTC-eng: 2021-01-23 03:12:17 _STATISTICS_TAGS-eng: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES Stream #0:2(eng): Audio: ac3, 48000 Hz, stereo, fltp, 192 kb/s Metadata: BPS-eng : 192000 DURATION-eng: 00:00:20.09600 NUMBER_OF_FRAMES-eng: 628 NUMBER_OF_BYTES-eng: 482304 _STATISTICS_WRITING_APP-eng: mkvmerge v51.0.0 ('I Wish') 64-bit _STATISTICS_WRITING_DATE_UTC-eng: 2021-01-23 03:12:17 _STATISTICS_TAGS-eng: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES Stream #0:3(eng): Subtitle: hdmv_pgs_subtitle Metadata: BPS-eng : 0 DURATION-eng: 00:00:00.0 NUMBER_OF_FRAMES-eng: 0 NUMBER_OF_BYTES-eng: 0 _STATISTICS_WRITING_APP-eng: mkvmerge v51.0.0 ('I Wish') 64-bit _STATISTICS_WRITING_DATE_UTC-eng: 2021-01-23 03:12:17 _STATISTICS_TAGS-eng: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES
Re: [FFmpeg-user] Tool to write ffmpeg strings
On Thu, Jan 28, 2021 at 9:11 AM Jason Brodkey wrote: > When I was trying to wrap my head around ffmpeg for some things, I used > FF-Works on the Mac. > It allows for some fairly complex situations and, in the logs, provides > the ffmpeg command that it used to get there. > My need at the time was video specific. I'm unsure if it supports all the > audio filters you're looking for. > > -Jason > > > > On Thu, Jan 28, 2021 at 2:17 AM Marco Mircoli > wrote: > >> Hello, >> thanks for the reply. >> The point is that handbrake doesn't let me access audio filters commands. >> I need to use tools like >> - 70HZ high pass filter >> - expander / noise gate >> - equalizer >> - compressor >> - exciter >> - de-esser >> - limiter >> and handbrake hasn't control over it...or am I wrong? >> Thanks. >> S. >> >> >> Il giorno gio 28 gen 2021 alle ore 10:24 Chris Miceli < >> ch...@miceli.net.au> >> ha scritto: >> >> > Hi Marco, >> > >> > If you are a user of MacOS then have a look at Handbrake. I think there >> is >> > a windows version as well but as a Linux user I'm not 100% sure. >> > >> > If you hunt for "handbrake alternative for X" where X is your operating >> > system then there should be something! >> > >> > Thanks, >> > Chris >> > >> > On Thu, Jan 28, 2021, 8:08 PM Marco Mircoli >> wrote: >> > >> > > Hello, >> > > my problem is that I am not a programmer (I'm a sound designer) >> > > I would like to approach FFMPEG. >> > > It's hard for me to learn the syntax of ffmpeg. >> > > Do you know if is there a tool that let me use ffmpeg filters in a >> > frontend >> > > environment and shows me the command line of what I'm doing? >> > > Thanks in advance. >> > > S. >> > > ___ >> > > ffmpeg-user mailing list >> > > ffmpeg-user@ffmpeg.org >> > > https://ffmpeg.org/mailman/listinfo/ffmpeg-user >> > > >> > > To unsubscribe, visit link above, or email >> > > ffmpeg-user-requ...@ffmpeg.org with subject "unsubscribe". >> > ___ >> > ffmpeg-user mailing list >> > ffmpeg-user@ffmpeg.org >> > https://ffmpeg.org/mailman/listinfo/ffmpeg-user >> > >> > To unsubscribe, visit link above, or email >> > ffmpeg-user-requ...@ffmpeg.org with subject "unsubscribe". >> ___ >> ffmpeg-user mailing list >> ffmpeg-user@ffmpeg.org >> https://ffmpeg.org/mailman/listinfo/ffmpeg-user >> >> To unsubscribe, visit link above, or email >> ffmpeg-user-requ...@ffmpeg.org with subject "unsubscribe". > > ... And I Top Posted. D’oh. Sorry all! ___ ffmpeg-user mailing list ffmpeg-user@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-user To unsubscribe, visit link above, or email ffmpeg-user-requ...@ffmpeg.org with subject "unsubscribe".
Re: [FFmpeg-user] Tool to write ffmpeg strings
When I was trying to wrap my head around ffmpeg for some things, I used FF-Works on the Mac. It allows for some fairly complex situations and, in the logs, provides the ffmpeg command that it used to get there. My need at the time was video specific. I'm unsure if it supports all the audio filters you're looking for. -Jason On Thu, Jan 28, 2021 at 2:17 AM Marco Mircoli wrote: > Hello, > thanks for the reply. > The point is that handbrake doesn't let me access audio filters commands. > I need to use tools like > - 70HZ high pass filter > - expander / noise gate > - equalizer > - compressor > - exciter > - de-esser > - limiter > and handbrake hasn't control over it...or am I wrong? > Thanks. > S. > > > Il giorno gio 28 gen 2021 alle ore 10:24 Chris Miceli > > ha scritto: > > > Hi Marco, > > > > If you are a user of MacOS then have a look at Handbrake. I think there > is > > a windows version as well but as a Linux user I'm not 100% sure. > > > > If you hunt for "handbrake alternative for X" where X is your operating > > system then there should be something! > > > > Thanks, > > Chris > > > > On Thu, Jan 28, 2021, 8:08 PM Marco Mircoli > wrote: > > > > > Hello, > > > my problem is that I am not a programmer (I'm a sound designer) > > > I would like to approach FFMPEG. > > > It's hard for me to learn the syntax of ffmpeg. > > > Do you know if is there a tool that let me use ffmpeg filters in a > > frontend > > > environment and shows me the command line of what I'm doing? > > > Thanks in advance. > > > S. > > > ___ > > > ffmpeg-user mailing list > > > ffmpeg-user@ffmpeg.org > > > https://ffmpeg.org/mailman/listinfo/ffmpeg-user > > > > > > To unsubscribe, visit link above, or email > > > ffmpeg-user-requ...@ffmpeg.org with subject "unsubscribe". > > ___ > > ffmpeg-user mailing list > > ffmpeg-user@ffmpeg.org > > https://ffmpeg.org/mailman/listinfo/ffmpeg-user > > > > To unsubscribe, visit link above, or email > > ffmpeg-user-requ...@ffmpeg.org with subject "unsubscribe". > ___ > ffmpeg-user mailing list > ffmpeg-user@ffmpeg.org > https://ffmpeg.org/mailman/listinfo/ffmpeg-user > > To unsubscribe, visit link above, or email > ffmpeg-user-requ...@ffmpeg.org with subject "unsubscribe". ___ ffmpeg-user mailing list ffmpeg-user@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-user To unsubscribe, visit link above, or email ffmpeg-user-requ...@ffmpeg.org with subject "unsubscribe".
Re: [FFmpeg-user] Tool to write ffmpeg strings
Hello, thanks for the reply. The point is that handbrake doesn't let me access audio filters commands. I need to use tools like - 70HZ high pass filter - expander / noise gate - equalizer - compressor - exciter - de-esser - limiter and handbrake hasn't control over it...or am I wrong? Thanks. S. Il giorno gio 28 gen 2021 alle ore 10:24 Chris Miceli ha scritto: > Hi Marco, > > If you are a user of MacOS then have a look at Handbrake. I think there is > a windows version as well but as a Linux user I'm not 100% sure. > > If you hunt for "handbrake alternative for X" where X is your operating > system then there should be something! > > Thanks, > Chris > > On Thu, Jan 28, 2021, 8:08 PM Marco Mircoli wrote: > > > Hello, > > my problem is that I am not a programmer (I'm a sound designer) > > I would like to approach FFMPEG. > > It's hard for me to learn the syntax of ffmpeg. > > Do you know if is there a tool that let me use ffmpeg filters in a > frontend > > environment and shows me the command line of what I'm doing? > > Thanks in advance. > > S. > > ___ > > ffmpeg-user mailing list > > ffmpeg-user@ffmpeg.org > > https://ffmpeg.org/mailman/listinfo/ffmpeg-user > > > > To unsubscribe, visit link above, or email > > ffmpeg-user-requ...@ffmpeg.org with subject "unsubscribe". > ___ > ffmpeg-user mailing list > ffmpeg-user@ffmpeg.org > https://ffmpeg.org/mailman/listinfo/ffmpeg-user > > To unsubscribe, visit link above, or email > ffmpeg-user-requ...@ffmpeg.org with subject "unsubscribe". ___ ffmpeg-user mailing list ffmpeg-user@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-user To unsubscribe, visit link above, or email ffmpeg-user-requ...@ffmpeg.org with subject "unsubscribe".
Re: [FFmpeg-user] minterpolate problem
On Thu, Jan 28, 2021 at 7:04 AM Mark Filipak (ffmpeg) wrote: > On 01/27/2021 05:47 PM, Carl Eugen Hoyos wrote: > > Am Mi., 27. Jan. 2021 um 02:03 Uhr schrieb Mark Filipak (ffmpeg) > > : > > > >> ffmpeg -i SOURCE -map 0 -filter_complex "split[1][2], \ > >> [1]telecine=pattern=55, select=not(eq(mod(n\,5)\,2))[3], \ > >> > [2]minterpolate=fps=6/1001:mi_mode=mci=mc_mode=obmc:scd=fdiff:scd_threshold=10, > \ > >> select=eq(mod(n\,5)\,2)[4], \ > >> [3][4]interleave" \ > >> -codec:v libx265 -x265-params "crf=16:qcomp=0.60" -codec:a copy > -codec:s copy TARGET > > > > Since others may read this: > > The command line makes little sense, you should either use > > telecine or minterpolate. > > Carl Eugen, you surprise me. I'm sure you see what I'm trying to do, so > why the angst? > > First, let me admit that since I started this thread (following weeks of > experimentation) I decided > to simply try this: 'minterpolate=fps=6/1001' to see what it would do. > I was amazed. > > If minterpolate is Paul's work, then Paul is a f'ing genius. > > I've since spent a couple of days playing with minterpolate and have found > that this: > > 'minterpolate=fps=6/1001:mi_mode=mci:mc_mode=obmc:scd=fdiff:scd_threshold=10:vsbmc=1:search_param=20' > is astounding. > > Nonetheless, I'd still like to generate a 60 FPS transcode that is > visually equivalent (as closely > as possible) to 24 pictures/second by replacing the combed frame (i.e. > n%5==2) by an interpolated > frame -- hence the filter graph you loathe. > > For that n%5==2 frame, here's what I sought (and did not find): > > Sobel of line y: __/\_/\_ > Sobel of line y+1: __/\_/\_ > Desired output: > line y: /\_/\___ > line y+1: /\_/\___ > I could find this: > line y: __/\_/\_ > line y+1: __/\_/\_ (aligned to top line) > and I could find this: > line y: __/\_/\_ (aligned to bottom > line) > line y+1: __/\_/\_ > but I could not find this: > line y: /\_/\___ (aligned to mean) > line y+1: /\_/\___ (aligned to mean) > > Please cite reference/paper that explains this technique in more detail. > One reason I might -- MIGHT -- prefer telecine55 is that the original > frames are recoverable from > the transcodes -- but admittedly, that's not much of a reason, is it? > Another reason is that the > transcode is much, much quicker than 'minterpolate=fps=6/1001' and > somewhat smaller. > > There you have it, Carl Eugen. Please stop trying to make the world think > I'm feeble minded. :-) > Okay? > > Regards, > Mark. > > -- > Someone's sneaking in and turning up the range so that my food burns. > I'm sure of it. > And the older I get, the more sure of it I become. > ___ > ffmpeg-user mailing list > ffmpeg-user@ffmpeg.org > https://ffmpeg.org/mailman/listinfo/ffmpeg-user > > To unsubscribe, visit link above, or email > ffmpeg-user-requ...@ffmpeg.org with subject "unsubscribe". ___ ffmpeg-user mailing list ffmpeg-user@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-user To unsubscribe, visit link above, or email ffmpeg-user-requ...@ffmpeg.org with subject "unsubscribe".
Re: [FFmpeg-user] Tool to write ffmpeg strings
Hi Marco, If you are a user of MacOS then have a look at Handbrake. I think there is a windows version as well but as a Linux user I'm not 100% sure. If you hunt for "handbrake alternative for X" where X is your operating system then there should be something! Thanks, Chris On Thu, Jan 28, 2021, 8:08 PM Marco Mircoli wrote: > Hello, > my problem is that I am not a programmer (I'm a sound designer) > I would like to approach FFMPEG. > It's hard for me to learn the syntax of ffmpeg. > Do you know if is there a tool that let me use ffmpeg filters in a frontend > environment and shows me the command line of what I'm doing? > Thanks in advance. > S. > ___ > ffmpeg-user mailing list > ffmpeg-user@ffmpeg.org > https://ffmpeg.org/mailman/listinfo/ffmpeg-user > > To unsubscribe, visit link above, or email > ffmpeg-user-requ...@ffmpeg.org with subject "unsubscribe". ___ ffmpeg-user mailing list ffmpeg-user@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-user To unsubscribe, visit link above, or email ffmpeg-user-requ...@ffmpeg.org with subject "unsubscribe".
Re: [FFmpeg-user] VOICE POST PRODUCTION IN ONE LINE
Am 28.01.2021 um 09:44 schrieb Marco Mircoli: Goodmorning everyone. I'm new to ffmpeg and was wondering if anyone from the group could help me set up a command line. My goal is to improve voice audio recordings. I would like to be able to do this starting from a command line I have in my script, modifying it to add: - 70HZ high pass filter - expander / noise gate - equalizer - compressor - exciter - de-esser - limiter - loudnorm to r128 (there is already) It would be nice to have all this just in one line, is it possible? This is the string where I'm starting from. $ shell = shell_exec ("$ ffmpeg_b -i $ audio_file_full_path -map 0: a: 0 -af loudnorm -b: a 96k $ audio_output_mp3 2> & 1"); yes, I think it's possible to do all this in one command line. All these features must be added at the beginning of the audio filter chain, that's between "-af" and "loudnorm". For example: $ shell = shell_exec ("$ ffmpeg_b -i $ audio_file_full_path -map 0: a: 0 -af highpass=f=70,loudnorm -b: a 96k $ audio_output_mp3 2> & 1"); Michael ___ ffmpeg-user mailing list ffmpeg-user@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-user To unsubscribe, visit link above, or email ffmpeg-user-requ...@ffmpeg.org with subject "unsubscribe".
[FFmpeg-user] Tool to write ffmpeg strings
Hello, my problem is that I am not a programmer (I'm a sound designer) I would like to approach FFMPEG. It's hard for me to learn the syntax of ffmpeg. Do you know if is there a tool that let me use ffmpeg filters in a frontend environment and shows me the command line of what I'm doing? Thanks in advance. S. ___ ffmpeg-user mailing list ffmpeg-user@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-user To unsubscribe, visit link above, or email ffmpeg-user-requ...@ffmpeg.org with subject "unsubscribe".
[FFmpeg-user] VOICE POST PRODUCTION IN ONE LINE
Goodmorning everyone. I'm new to ffmpeg and was wondering if anyone from the group could help me set up a command line. My goal is to improve voice audio recordings. I would like to be able to do this starting from a command line I have in my script, modifying it to add: - 70HZ high pass filter - expander / noise gate - equalizer - compressor - exciter - de-esser - limiter - loudnorm to r128 (there is already) It would be nice to have all this just in one line, is it possible? This is the string where I'm starting from. $ shell = shell_exec ("$ ffmpeg_b -i $ audio_file_full_path -map 0: a: 0 -af loudnorm -b: a 96k $ audio_output_mp3 2> & 1"); Thanks in advance. Best. S. ___ ffmpeg-user mailing list ffmpeg-user@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-user To unsubscribe, visit link above, or email ffmpeg-user-requ...@ffmpeg.org with subject "unsubscribe".