[Ffmpeg-devel-irc] ffmpeg.log.20180614

burek burek021 at gmail.com
Fri Jun 15 03:05:01 EEST 2018

[00:50:31 CEST] <csierra_> I'm trying to extract a frame from a video and resize it to 1 pixel wide with ffmpeg. Doing it in Windows results in the image having a green tint. The tint is gone if I set it to 2 pixels or are on a different OS. How can I fix this? https://pastebin.com/raw/Xh0hNhRV
[00:52:14 CEST] <furq> csierra_: i'm surprised that even works
[00:52:48 CEST] <furq> but either way try -vf format=yuv444p,scale=1:1875
[00:53:00 CEST] <furq> or yuvj444p rather
[00:56:04 CEST] <csierra_> That worked perfectly. What was the cause, just ffmpeg auto selecting the wrong codec?
[00:56:46 CEST] <nicolas17> it's not a codec
[00:57:05 CEST] <nicolas17> seems 4:2:0 chroma subsampling when the video is 1px wide doesn't work
[00:57:13 CEST] <nicolas17> 4:4:4 means no subsampling
[00:58:05 CEST] <csierra_> ah. strange it worked on a couple of non-Windows OSes
[00:58:07 CEST] <csierra_> thanks a lot
[00:58:38 CEST] <furq> well yeah with most video codecs that would just throw an error
[00:58:46 CEST] <furq> so i assume jpeg has some kind of special handling of that
[00:58:54 CEST] <furq> but it's probably still a bad idea
[01:01:50 CEST] <csierra_> Why's that?
[01:02:09 CEST] <csierra_> Basically I'm just trying to get the average color of the particular frame
[01:02:27 CEST] <csierra_> Well, average horizontal color in this case
[01:03:11 CEST] <furq> you probably want to use png then
[01:03:25 CEST] <nicolas17> hm that reminds me
[01:03:43 CEST] <nicolas17> is there a way with ffmpeg to average all frames in a video? or would I need to write my own code for that?
[01:03:54 CEST] <nicolas17> I only found something to average two adjacent frames
[01:04:54 CEST] <csierra_> You could resize all frames to 1 pixel, montage them with imagemagick, then get the average color of that
[01:05:06 CEST] <csierra_> Would probably take forever, though
[01:05:37 CEST] <nicolas17> csierra_: but I don't want a single pixel, I want the whole image
[01:06:32 CEST] <csierra_> ah
[01:06:50 CEST] <csierra_> not sure then
[01:07:12 CEST] <nicolas17> like simulating a super long exposure photo
[01:13:53 CEST] <furq> i don't think anything other than a million chained tblends will do that
[01:14:01 CEST] <furq> you could probably do it with temporalmedian for avisynth
[01:14:08 CEST] <furq> or preferably a vs port if you can find one
[01:14:14 CEST] <nicolas17> meh
[01:14:26 CEST] <nicolas17> it's probably 5 lines in OpenCV
[03:59:45 CEST] <HIGHEFFICIENCY> Hey there guys.
[03:59:58 CEST] <HIGHEFFICIENCY> Been wondering how to convert an HEIC archive to TIFF?
[04:00:08 CEST] <HIGHEFFICIENCY> Like, an heic file containing multiple images
[04:00:32 CEST] <HIGHEFFICIENCY> I want to extract each individual image and convert them losleslly to TIFF
[04:00:47 CEST] <HIGHEFFICIENCY> Any idea how?
[04:08:51 CEST] <HIGHEFFICIENCY> Any idea?
[04:19:51 CEST] <c0nundrum> hello
[04:20:19 CEST] <c0nundrum> Are there any bugs related to ffmpeg stalling ?
[04:20:31 CEST] <c0nundrum> when processing and hls input
[04:36:05 CEST] <HIGHEFFICIENCY> Any idea?
[04:45:41 CEST] <chocolate-elvis> https://github.com/nokiatech/heif ?
[04:47:21 CEST] <chocolate-elvis> Better, https://trac.ffmpeg.org/ticket/6521
[05:06:53 CEST] <HIGHEFFICIENCY> chocolate-elvis: Does that support heic archives?
[05:08:15 CEST] <HIGHEFFICIENCY> Like, multiple images in one heic archive
[05:09:09 CEST] <HIGHEFFICIENCY> Doesn
[05:09:19 CEST] <HIGHEFFICIENCY> sound like they got no binary unfortunately
[06:07:01 CEST] <c0nundrum> whats the safest way to save an hls input with the least processsing ?
[06:07:56 CEST] <c0nundrum> I tried doing copy on audio and video i get corrupted video files without using         "-ar",         "44100",
[09:30:38 CEST] <drkop> hi. trying to build ffmpeg-4.0 on centos 7 with opus. Get an "ERROR: opus not found using pkg-config", but opus-devel installed. What can i do? googling didn't help.
[12:39:44 CEST] <Orbstheorem> Hi, I'm looking for a looseless compressed encoding for audio files that works in a similar way that jpeg does. AFAIK, the base of the signal is fit to a parametred function and high frequency data is individually encoded.
[12:39:56 CEST] <Orbstheorem> looseless-capable*
[15:13:16 CEST] <kepstin> Orbstheorem: it's not exactly what you're saying (audio and video encoding works quite a bit differently, so comparisons like that don't really make sense), but wavpack has a hybrid mode that does a lossy encode and then separate residuals for lossless
[15:13:40 CEST] <kepstin> (i think some of the newer home theatre codecs can do that too? dca? but you won't find open-source encoders for that yet)
[15:14:15 CEST] <kepstin> your description isn't super accurate about how jpeg works either :/
[15:25:16 CEST] <Orbstheorem> forgive me, I'm not much into A/V, that's the JPEG explaination I remember someone explained to me
[15:25:39 CEST] <Orbstheorem> but lossy + residuals for lossless is what I'm looking for :)
[15:27:49 CEST] <furq> wavpack is the most widely supported thing that does that afaik
[15:28:06 CEST] <furq> i don't know of anything else ffmpeg supports at all, let alone in hybrid mode
[15:30:18 CEST] <furq> https://wiki.hydrogenaud.io/index.php?title=LossyWAV
[15:30:24 CEST] <furq> there's also that which produces compliant wav files
[15:30:33 CEST] <furq> the compression ratio for the lossy section is pretty poor though
[15:46:29 CEST] <kepstin> Orbstheorem: i'm not too sure about how good the compression is on wavpack in hybrid mode. You should compare it with having e.g. a separate opus file and flac file and see which option works better for you.
[15:55:49 CEST] <hfink> hi, quick question: I am getting heavy encoding artifacts with the constant-bitrate mode of the vaapi_h264 encoder (constant QP is fine). did anyone have similar problems?
[15:56:05 CEST] <kepstin> hfink: what hardware?
[15:56:42 CEST] <hfink> kepstin: intel skylake m7-6Y75
[15:56:51 CEST] <kepstin> assuming you're using recent ffmpeg, that's probably either a hardware limitation or driver issue.
[15:57:24 CEST] <kepstin> also keep in mind that hardware encoders are not nearly as efficient as software, in general, so you probably have to use more bitrate than you'd use with x264 for the same quality.
[15:57:54 CEST] <hfink> I am using 3.4.2, I'll give 4.0 a try as well, but I also suspect a driver issue
[15:58:06 CEST] <kepstin> that's a pretty recent intel chip - make sure you're on a distro with modern kernel and vaapi components
[15:58:09 CEST] <bencoh> and even then, you might still get some encoder-specific artifacts
[15:58:34 CEST] <kepstin> but yeah, try just turning up the bitrate and see if that helps
[15:58:46 CEST] <kepstin> can you paste the entire command you're running?
[15:58:54 CEST] <Orbstheorem> furq: kepstin Thanks!
[16:00:20 CEST] <kepstin> (I've done things like write a bitrate in kbps without the k suffix before, then the quality was awful because it was trying to do 1000bits/s instead of 1000kbit/s...)
[16:00:59 CEST] <hfink> kepstin: I am using it in my code directly, and the bitrate is set correctly. but thanks for your input, I just wanted to check whether this might be a known issue of the ffmpeg implementation of vaapi.
[16:01:17 CEST] <hfink> I'll try updating the drivers and see if that helps
[16:01:43 CEST] <kepstin> hfink: i suspect in the end it's gonna be "hardware encoders are kinda meh, try giving it more bitrate" :/
[16:40:59 CEST] <transhuman> hi! question: adding :style=Bold for text overlay is not the proper command for ffmpeg, what is the right command for bold styling?
[17:01:01 CEST] <podman> anyone familiar with steganographic watermarking using ffmpeg?
[17:03:32 CEST] <nicolas17> steganography tries to hide data from the human eye, and modern video codecs are good at throwing away information the human eye wouldn't notice :)
[17:03:59 CEST] <podman> nicolas17: yeah, that's difficult part
[17:16:42 CEST] <podman> basically trying to do some forensic watermarking by creating two versions of a video with different watermarks and serving up segments from each version to create a binary representation of some data
[17:16:56 CEST] <podman> but not sure how to handle the watermarking part to tell the two versions apart
[17:25:38 CEST] <furq> podman: i take it that it needs to be a visible watermark
[17:26:16 CEST] <podman> furq: doesn't have to be, but i imagine for it to not get nuked by the codec, it probably is easiest for it to be visible?
[17:26:54 CEST] <furq> there's a bunch of places in an h264 bitstream that you can put private data
[17:27:02 CEST] <furq> obviously it won't survive reencoding though
[17:27:33 CEST] <kepstin> you could do fun things like put jitter in timestamps too.
[17:27:48 CEST] <furq> and there are ways to remove it if the attacker knows the watermark is there
[17:28:06 CEST] <furq> but then that's also true of visible watermarks if they're in an area that you can throw a delogo over
[17:29:02 CEST] <furq> timestamp jitter sounds pretty clever although again you can strip that without reencoding
[17:41:06 CEST] <drkop> Anyone https://pastebin.com/tM0VXD5X ?
[17:41:21 CEST] <podman> furq: yeah, would need to be something that would survive attempts to reencode/screencap/remove the watermark
[17:45:09 CEST] <ariyasu> i remember some p2p anime group used to hide there group name on 1 random frame of the video, that was to fast to spot with the naked eye
[17:45:25 CEST] <ariyasu> they were trying to prove a scene group were stealing their releases, which they were
[17:52:55 CEST] <podman> the idea is to encode some data, like a session ID number or something using an HLS or Dash manifest. so if a specific viewer, say viewer 11, watches the video, i could create a manifest with version 1, version 0, version 1, version 1... and then i could identify based on the different segments which viewer the leak came from
[17:59:50 CEST] <podman> so someone playing back the video wouldn't know anything is going on, but the two versions of the segments would be different enough that, upon review, we would be able to extract the binary data that was encoded
[18:01:46 CEST] <kepstin> you need something that can survive re-encoding (in particular, re-encoding where the keyframe distribution is different, since they'd probably be using crf mode with long kf interval)
[18:01:53 CEST] <kepstin> so, hmm :/
[18:02:51 CEST] <kepstin> and it has to be sufficiently non-obvious so that someone won't think to make a couple of accounts and download a few versions and mix segments between them.
[18:04:10 CEST] <nicolas17> AACS has it
[18:05:26 CEST] <nicolas17> to detect which player was compromised
[18:05:39 CEST] <nicolas17> "AACS also incorporates traitor tracing techniques. The standard allows for multiple versions of short sections of a movie to be encrypted with different keys, while a given player will only be able to decrypt one version of each section. The manufacturer embeds varying digital watermarks in these sections, and upon subsequent analysis of the pirated release the compromised keys can be identified and revoked"
[18:08:27 CEST] <kepstin> my impression was that most BD piracy (at least for AACS1 stuff) was done using stolen or derived MKB processing keys which aren't player specific.
[18:10:40 CEST] <podman> yep, that's pretty much what i'm looking to replicate
[18:11:32 CEST] <podman> kepstin: not too worried about someone trying to make multiple accounts as the accounts are provisioned for the viewers.
[18:29:14 CEST] <th3_v0ice> Does anyone have a problem while using the av_write_frame() not actually writing a packet to the output file? I tested and last packet is sent to the method  but its not actually written to the file. I have called the av_write_frame with NULL to flush the remaining packets but that didnt do anything.
[18:30:54 CEST] <th3_v0ice> Using the av_interleaved_write_frame() gives exactly the same behaviour.
[18:33:13 CEST] <Mavrik> th3_v0ice: close the output format
[18:33:21 CEST] <Mavrik> That usually writes the trailer and everything
[18:35:43 CEST] <th3_v0ice> Mavrik: I did, and last packet(frame) is not there. Its just missing.
[18:36:12 CEST] <Mavrik> fun, which muxer.
[18:36:14 CEST] <Mavrik> ?
[18:36:39 CEST] <th3_v0ice> mp4
[18:41:44 CEST] <th3_v0ice> Changing the output file to 264 bitstream last packet is writen properly. I am not sure which muxer this uses.
[19:42:03 CEST] <kisspachyousee> hi! ! !
[19:42:56 CEST] <kisspachyousee> i have this error when i compile openwrt --->  common.mak:60: recipe for target 'libavdevice/alldevices.o' failed
[00:00:00 CEST] --- Fri Jun 15 2018

More information about the Ffmpeg-devel-irc mailing list