BtbN changed the topic of #ffmpeg to: Welcome to the FFmpeg USER support channel | Development channel: #ffmpeg-devel | Bug reports: https://ffmpeg.org/bugreports.html | Wiki: https://trac.ffmpeg.org/ | This channel is publically logged | FFmpeg 7.0 is released
System_Error has quit [Ping timeout: 260 seconds]
minimal has quit [Quit: Leaving]
iive has quit [Quit: They came for me...]
wyatt8740 has quit [Ping timeout: 265 seconds]
wyatt8750 has joined #ffmpeg
Rena has quit [Quit: $WITTY_QUIT_MESSAGE]
wyatt8750 has quit [Ping timeout: 252 seconds]
wyatt8740 has joined #ffmpeg
Rena has joined #ffmpeg
jtgd has joined #ffmpeg
Unit640 has quit [Quit: Leaving]
makidoll has quit [Remote host closed the connection]
makidoll has joined #ffmpeg
SuicideShow has quit [Ping timeout: 272 seconds]
SuicideShow has joined #ffmpeg
System_Error has joined #ffmpeg
<intrac>
I'm trying the -stream_loop option with stream copy to quickly loop a pre-encoded stream
<intrac>
it seems to play ok on the computer (with MPV on Linux), but on my standalone media player, there's a slight pause/jump at the loop transition
<intrac>
is there a way to make sure that doesn't happen?
shibboleth has joined #ffmpeg
shibboleth has quit [Quit: shibboleth]
lucasta has quit [Quit: Leaving]
vincejv has quit [Remote host closed the connection]
tyzef has joined #ffmpeg
tyzef has quit [Max SendQ exceeded]
vincejv has joined #ffmpeg
<aaabbb>
encoding with -c:v h261 i see it is putting out only P fames. playing it back gives the error from the h261 decoder "warning: first frame is no keyframe" although it does play. why is this? and how is it able to play at all without even one I frame?
<aaabbb>
is the h261 decoder wrongly labeling all frames as P frames? or is the first P frame consisting of all intra-blocks?
<aaabbb>
>In I frames, every macroblock must be coded in intraframe mode, i.e. no prediction is used. In P frames, each macroblock can be coded with forward prediction or in intraframe mode. In B frames, each macroblock can be coded with forward, backward, or bidirectional prediction or in intraframe mode.
<furq>
yeah i was thinking of slices not blocks
<aaabbb>
so for mpeg1 at leas you can have intra blocks, i assume same is for h.261
Suchiman has joined #ffmpeg
esu has quit [Remote host closed the connection]
esu has joined #ffmpeg
<noobaroo>
I've never even heard of h.261, whats the point of using it? (not dissuading you from doing so, i dislike when people do that to me, im just curious is all)
<noobaroo>
Like i hate when i try to get help in doing something on IRC and i get a bunch of variations of "Why are you trying" or "Stop trying, no one does this in 2024"
<aaabbb>
noobaroo: h.261 is pretty much the origin of all modern codecs. it is where the concept of motion vectors, macroblocks, using dct + scalar quantization came from. it is also basically the same as mpeg1 and mpeg2 (h.262) with some small tweaks
<aaabbb>
i have no reason to use it. i have reason to use mpeg1 sometimes fo ultra-low power embedded devices. but out of curiosity i checked to see if ffmpeg supported h261 and it did. and to my surprise, i got a warning that "first frame is no keyframe" so i investigated
<noobaroo>
mpeg1 is better than mpeg2?
<aaabbb>
mpeg2 is basically mpeg1 with fewer constraints ie it allows both interlaced and non-interlaced, and it's not limited to yuv420p
<aaabbb>
my understanding is that it went h.120 (experimental and totally inefficient) -> h.261 (broadcasts etc) -> mpeg1 -> mpeg2 aka h.262 -> mpeg4 aka h.263 -> h.264/avc -> h.265/hevc -> h.266/vvc
<aaabbb>
in fact any compliant mpeg2 decoder can decode mpeg1 with no issues. unlike future formats which, while based on previous ones conceptually, are fundamentally different formats
<aaabbb>
my guess is the h261 decoder is incorrectly marking all frames as P frames which leads to the warning and to ffprobe claiming it has no keyframes. i'm not sure what makes an I frame an I frame in the bistream. is there an element that marks it as one or is an I frame just "any frame containing exclusively intra-coded blocks"?
StephenLynx has quit [Quit: Leaving]
YuGiOhJCJ has quit [Quit: YuGiOhJCJ]
finsternis has quit [Read error: Connection reset by peer]
tyzef has joined #ffmpeg
System_Error has quit [Remote host closed the connection]
System_Error has joined #ffmpeg
cryptic has quit [Ping timeout: 264 seconds]
Cheetahze has joined #ffmpeg
Some_Person has quit [Ping timeout: 252 seconds]
Some_Person has joined #ffmpeg
yawkat has quit [Ping timeout: 252 seconds]
tyzef has quit [Quit: It was nice to meet you o/]
down200 has quit [Ping timeout: 276 seconds]
yawkat has joined #ffmpeg
down200 has joined #ffmpeg
Some_Person has quit [Ping timeout: 248 seconds]
Some_Person has joined #ffmpeg
dallemon1 has joined #ffmpeg
\\Mr_C\\ has joined #ffmpeg
dallemon has quit [Ping timeout: 255 seconds]
dallemon1 is now known as dallemon
Some_Person has quit [Ping timeout: 252 seconds]
Some_Person has joined #ffmpeg
makidoll9 has joined #ffmpeg
makidoll has quit [Ping timeout: 260 seconds]
makidoll9 is now known as makidoll
tyzef has joined #ffmpeg
tyzef has quit [Max SendQ exceeded]
Krusher has joined #ffmpeg
Suchiman has quit [Quit: Connection closed for inactivity]
Suchiman has joined #ffmpeg
Cheetahze has quit [Quit: Connection closed for inactivity]
FlorianBad has quit [Remote host closed the connection]
makidoll4 has joined #ffmpeg
makidoll has quit [Ping timeout: 260 seconds]
makidoll4 is now known as makidoll
FlorianBad has joined #ffmpeg
snoriman has joined #ffmpeg
System_Error has quit [Ping timeout: 260 seconds]
System_Error has joined #ffmpeg
rvalue has quit [Read error: Connection reset by peer]
rvalue has joined #ffmpeg
luva8889 has quit [Quit: Byebye]
luva8889 has joined #ffmpeg
Wulf has quit [Ping timeout: 260 seconds]
Wulf has joined #ffmpeg
acidbunny has quit [Ping timeout: 276 seconds]
rsx has joined #ffmpeg
emanuele6 has quit [Quit: WeeChat 4.4.2]
emanuele6 has joined #ffmpeg
tyzef has joined #ffmpeg
Unit640 has joined #ffmpeg
YUiNA has quit [Ping timeout: 252 seconds]
tyzef has quit [Quit: WeeChat 3.8]
emmanuelux_ has joined #ffmpeg
emmanuelux has quit [Ping timeout: 252 seconds]
lavaball has joined #ffmpeg
Some_Person has quit [Ping timeout: 265 seconds]
Some_Person has joined #ffmpeg
noobaroo has quit [Ping timeout: 248 seconds]
StephenLynx has joined #ffmpeg
lusciouslover has quit [Read error: Connection reset by peer]
lusciouslover has joined #ffmpeg
<dv_>
does anyone have experience with intra refresh using random macroblock permutations for refreshes vs. sequential macroblocks for refreshes?
<dv_>
if I do periodic intra refresh by encoding macroblocks as intra macroblocks in a sequence (for example, first frame MBs 0-15, second frame MBs 16-31 etc.), then sometimes this refresh pattern can be recognizable visually. I think that by using a random permutation, this visual impact can be minimized, since the eye is very good at recognizing such sequential patterns, but is not nearly as good at
<dv_>
recognizing random ones.
<dv_>
but, I am not sure if this is actually true. so, if someone tried intra refresh using random macroblock permutations, I'd like to hear about it.
<dv_>
note: I specifically mean a random permutation, not simply random intra refresh. this is still periodic intra refresh. once the period is complete, all macroblocks are guaranteed to have been refreshed.
evilscreww has joined #ffmpeg
lavaball has quit [Remote host closed the connection]
minimal has joined #ffmpeg
ewomer has joined #ffmpeg
lucasta has joined #ffmpeg
LunaLovegood has quit [Ping timeout: 260 seconds]
<jkqxz>
dv_: What are you trying to use intra refresh for?
<jkqxz>
If you are trying to use it to avoid accumulated error in MPEG-2 streams, then sure.
<jkqxz>
But if you are trying to use it to avoid intra frames in a modern codec then a random pattern doesn't work at all because the bad regions will get propagated (by both inter and intra prediction) into your supposedly-good regions.
turlando has quit []
lucasta has quit [Remote host closed the connection]
sonicrules1234 has quit [Remote host closed the connection]
Cheetahze has quit [Quit: Connection closed for inactivity]
lucasta has joined #ffmpeg
cryptic has joined #ffmpeg
trillion_exabyte has quit [Ping timeout: 244 seconds]
trillion_exabyte has joined #ffmpeg
markizano has quit [Quit: Poweroff]
Rena has quit [Ping timeout: 265 seconds]
trillion_exabyte has quit [Ping timeout: 260 seconds]
sonicrules1234 has joined #ffmpeg
darkapex has quit [Ping timeout: 272 seconds]
darkapex has joined #ffmpeg
trillion_exabyte has joined #ffmpeg
Rena has joined #ffmpeg
lavaball has joined #ffmpeg
evilscreww has quit [Ping timeout: 250 seconds]
rsx has quit [Quit: rsx]
<znf>
I'm having a weird issue with ffmpeg copying a stream to disk
<znf>
and it's... not writing the segment list...?!
<znf>
like, sometimes it will write it
<znf>
but most of the times it won't
stolen has joined #ffmpeg
<znf>
start_pts_time is 0 in all debug prints, it keeps writing to x_0.ts continously
<znf>
-use_wallclock_as_timestamps 1 fixes it, but I don't think that's the "right" way of doing it
<dv_>
jkqxz: bad regions? good regions?
<dv_>
jkqxz: yeah, I use intra refresh to avoid the bitrate spikes from periodic IDR frames
EmleyMoor has quit [Ping timeout: 276 seconds]
EmleyMoor has joined #ffmpeg
<dv_>
jkqxz: I suppose the encoder would only pick those macroblocks as references that just got refreshed
Some_Person has quit [Ping timeout: 248 seconds]
Some_Person has joined #ffmpeg
<BtbN>
-re for a live stream is probably not the best idea
<BtbN>
Also, -acodec and friends are deprecated, use -c
relue has quit [Read error: Connection reset by peer]
<jkqxz>
dv_: That pretty much means ruling out most inter prediction in modern codecs, because the filter halo aound the block is large. Similarly, you can barely use intra prediction anywhere either because it always uses pixels above/left.
alphalpha has joined #ffmpeg
alphalpha has quit [Client Quit]
<dv_>
jkqxz: because motion estimation usually looks for the best fitting macroblock within a limited neighbourhood?
alphalpha has joined #ffmpeg
<dv_>
I guess if full search was used all the time it would not matter, but most encoders don't do full search?
Krusher has quit [Read error: Connection reset by peer]
Some_Person has quit [Ping timeout: 252 seconds]
lucasta has quit [Quit: Leaving]
Some_Person has joined #ffmpeg
ChocolateArmpits has joined #ffmpeg
coldfeet has joined #ffmpeg
shibboleth has joined #ffmpeg
Tano has quit [Quit: WeeChat 4.4.2]
System_Error has quit [Remote host closed the connection]
Tips|Cloud has quit [Ping timeout: 245 seconds]
Tips|Cloud has joined #ffmpeg
EmleyMoor has quit [Ping timeout: 264 seconds]
EmleyMoor has joined #ffmpeg
System_Error has joined #ffmpeg
Tano has joined #ffmpeg
^Neo has joined #ffmpeg
<^Neo>
is there a way to feed a TS file by http chunk by http chunk into an avformat context's buffer so that you can get an AVPacket as soon as the you've received enough data to frame a compressed video or audio frame?
trillion_exabyte has quit [Ping timeout: 248 seconds]
relue has joined #ffmpeg
trillion_exabyte has joined #ffmpeg
putacho has quit [Quit: There is no spoon!]
microchip_ has joined #ffmpeg
<znf>
BtbN, I tried both ways (with/without -re), that was just the latest attempt
<BtbN>
-re got nothing to do with the other problem, it just makes no sense and might break stuff
crossby1004 has joined #ffmpeg
<znf>
so why does `use_wallclock_as_timestamps` fix it?
<znf>
the "stream" is being generated by an app called ErsatzTV, which uses ffmpeg behind the scenes, it's doing something like: