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

burek burek021 at gmail.com
Mon Sep 26 03:05:01 EEST 2016


[01:02:24 CEST] <tomasm-> ok so is ffmpeg still actively being developed? or is it all in avconv now?
[01:02:52 CEST] <c_14> subscribe to ffmpeg-devel and you'll find out just how active it is
[01:03:06 CEST] Action: KDDLB facepalms
[01:05:58 CEST] <furq> what is this, 2011
[01:08:47 CEST] <tomasm-> ok so I have this 'ffmpeg' command on my sytsem, but is it really ffmpeg or just an alias to avconv? ffmpeg has supported -noautorotate for a while I think, I have 2.5.10 (on ubuntu). but I get an error saying unrecognized option
[01:09:32 CEST] <purplex88> is it possible to check if video file is anamorphic? if its not anamorphic then is it good to convert to it? is there benefit of it?
[01:09:38 CEST] <furq> 2.5 is >18 months old
[01:09:52 CEST] <tomasm-> furq it says  2016
[01:10:02 CEST] <furq> well yeah that's the latest point release
[01:10:11 CEST] <furq> those only contain bugfixes
[01:10:20 CEST] <furq> in terms of features, you're stuck in december 2014
[01:10:55 CEST] <furq> the latest 2.5 point release, i mean
[01:11:08 CEST] <tomasm-> ok make sense
[01:11:40 CEST] <furq> i'm going to assume you got that from a ppa
[01:12:13 CEST] <furq> if you're stuck on an old ubuntu then use https://www.johnvansickle.com/ffmpeg/ or something
[01:15:34 CEST] <tomasm-> furq, yeah im getting the source now
[01:16:31 CEST] <tomasm->  #ffmpeg          335
[01:16:37 CEST] <tomasm->  #libav           59
[01:16:40 CEST] <tomasm-> hmmm =P
[01:16:51 CEST] <c_14> Well, tbf 99% of the people in here idle
[01:16:54 CEST] <tomasm-> guess that answers my question
[01:19:30 CEST] <kode54> tomasm-: the avconv fork provides a "compatibility" ffmpeg binary that claims that the command is obsolete and will be going away at any time
[01:19:44 CEST] <kode54> I'm not sure whether on new ubuntu, you can get real ffmpeg, or if you have to use a ppa
[01:19:52 CEST] <furq> well libav made it into a couple of ubuntu LTS releases so we can all look forward to answering this question again and again
[01:20:00 CEST] <tomasm-> yeah im getting the current source anyway
[01:20:08 CEST] <furq> kode54: real ffmpeg is back in the last couple of releases
[01:20:18 CEST] <furq> since 15.04 iirc
[01:20:31 CEST] <kode54> aha
[01:20:33 CEST] <furq> and 3.x is in jessie-backports on debian
[01:20:41 CEST] <furq> for those unfortunate souls who use jessie
[01:20:52 CEST] <klaxa> :(
[01:21:00 CEST] <tomasm-> i recall some other reason a while back why i hated avconv
[01:21:25 CEST] <klaxa> somewhere i have a screenshot why i didn't like avconv
[01:21:54 CEST] <furq> if you're not on a rolling release distro then you're better off not using the distro packages anyway
[01:22:01 CEST] <furq> and everyone is better off not using PPAs
[01:22:33 CEST] <tomasm-> so.... anyone deal with videos uploaded from mobile devices using input type=file? I'm noticing that it's rotated sideways, probably because of some metadata in my video, but i think the -noautorotate was supposed to fix that.
[01:22:54 CEST] <furq> -metadata:s:v:0 rotate=0
[01:22:54 CEST] <furq> iirc
[01:23:31 CEST] <furq> ffprobe -show_format will probably show you the current value
[01:23:44 CEST] <klaxa> there it is: https://files.klaxa.eu/2014-08-16-002239_1280x800_scrot.png
[01:24:32 CEST] <furq> well if you're using mpeg4 and vorbis then you're obviously just trying to find bugs
[01:24:46 CEST] <klaxa> oh?
[01:24:57 CEST] <tomasm-> quicktime FTW
[01:25:28 CEST] <klaxa> the same command worked with ffmpeg
[01:25:40 CEST] <furq> i actually found some .ogm files on my nas the other day
[01:25:45 CEST] <furq> that was an unpleasant surprise
[01:26:22 CEST] <klaxa> i remember the first software i used for screenrecording was just a front-end for a specific ffmpeg command and used theora for video
[01:26:27 CEST] <klaxa> not even sure it recorded audio
[01:26:35 CEST] <furq> was it "ffmpeg2theora"
[01:26:43 CEST] <furq> i used that for streaming to icecast years ago
[01:27:04 CEST] <furq> it's still kicking it in the debian repos
[01:28:31 CEST] <klaxa> pretty sure it was this one: http://recordmydesktop.sourceforge.net
[01:29:06 CEST] <furq> i've seen this website before and i don't understand why
[01:30:05 CEST] <klaxa> looks like you can't even change the encoding settings much
[01:30:25 CEST] <furq> i think someone in here about a month ago was asking if we recommended it
[01:30:33 CEST] <furq> the things people find with google
[01:32:59 CEST] <klaxa> the latest release is from 2008
[01:32:59 CEST] <tomasm-> furq, whats the diff between what you said and noautorotate?
[01:33:14 CEST] <furq> no idea, i've never heard of noautorotate
[01:33:44 CEST] <furq> apparently it's only an ffplay option
[01:33:52 CEST] <klaxa> also, grepping the source, looks like they used libtheora directly
[01:34:15 CEST] <c_14> furq: nah, it also works for ffmpeg
[01:34:25 CEST] <c_14> It makes ffmpeg ignore the rotate metadata
[01:34:43 CEST] <furq> does that do anything while remuxing
[01:34:48 CEST] <c_14> no
[01:34:50 CEST] <tomasm-> furq, i thought that rotate metadata command might differ depending on the video  orientation.... ie it might need to be 0, 90, 180, etc
[01:34:55 CEST] <c_14> Only when reencoding
[01:34:59 CEST] <furq> yeah that makes sense
[01:35:26 CEST] <furq> tomasm-: 0 will give you the video with no rotation applied, same as noautorotate
[01:35:38 CEST] <tomasm-> ok then
[01:35:58 CEST] <furq> the phone might have just recorded it with 90 set
[01:36:24 CEST] <furq> in which case `-i in.mp4 -metadata:s:v:0 rotate=0 -c copy out.mp4` will just strip that
[01:37:03 CEST] <tomasm-> so the phone is doing it wrong?
[01:37:42 CEST] <klaxa> have phones ever done anything right? (video wise)
[01:37:44 CEST] <furq> shrug
[01:37:54 CEST] <furq> i'm pretty sure phones setting the rotate flag is a thing
[01:38:18 CEST] <furq> i've never recorded video with my phone held vertically because i don't want to be sent to a death camp
[01:38:53 CEST] <kode54> I've only ever recorded vertical video when the frame of what I wanted to record was actually vertical
[01:39:21 CEST] <c_14> What's even better is recording video in one orientation and then turning the camera while you're still recording.
[01:39:43 CEST] <kode54> guilty of that too
[01:40:57 CEST] <tomasm-> unfortunately im processing both smart phone videos and webcam videos, so orientation can be either way... not sure what to do other than output to a square shape... mainly to minimize a ridiculous amount of space on the sides when portrait. cropping isnt really an option
[01:41:19 CEST] <kode54> now I don't have to worry about rotating the camera while recording
[01:41:20 CEST] <tomasm-> c_14, what happens then, out of curiosity?
[01:41:25 CEST] <kode54> I just use Horizon camera app
[01:41:45 CEST] <c_14> Well, no matter how you turn it it'll be wrong at least half the time.
[01:42:04 CEST] <c_14> Plus the aspect ratio flips halfway through
[01:42:15 CEST] <kode54> Horizon auto levels a landscape frame inside the actual picture
[01:42:32 CEST] <tomasm-> so the black bars/background switches around
[01:42:58 CEST] <kode54> no
[01:43:08 CEST] <kode54> it crops and rotates a frame from what the camera captures
[01:58:56 CEST] <tomasm-> ok so i must be missing something..... I tried converting a file and the video disappeared: ffmpeg -noautorotate -t 30  -i test1.mp4 -vcodec mpeg4 -acodec aac -strict experimental -s 500x500 -y test2.mp4
[02:02:22 CEST] <tomasm-> it was originally h264. i just need something vcodec that browsers will support
[02:05:28 CEST] <furq> if you want something browsers support then use h264
[02:05:33 CEST] <furq> i don't think any of them support mpeg4
[02:05:53 CEST] <tomasm-> even though the file ends in .mp4? or is there a better file extension?
[02:06:18 CEST] <tomasm->  D.V.LS h264                 H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10
[02:06:58 CEST] <furq> you want h264 and aac in mp4
[02:07:10 CEST] <furq> that's the most widely supported combination
[02:07:15 CEST] <tomasm-> does that mean it wont re-encode back into h264? if i do -vcodec h264? just not sure if it's seeing the mp4  extension and assuming mpeg4 encoding or only falling back on that because h264 encoding doesnt seem enabled
[02:07:48 CEST] <tomasm-> I dont see an "E" with ffmpeg -codecs | grep h264
[02:08:13 CEST] <furq> did you --enable-libx264
[02:08:16 CEST] <DHE> mpeg4 is the old DivX style of codec. h264 is a generation above mpeg4. you want h264 at a minimum
[02:08:25 CEST] <furq> there's no builtin encoder
[02:08:46 CEST] <tomasm-> furq, no but i built it on two systems and one built it in and one didnt
[02:08:55 CEST] <tomasm-> am i missing a third party library?
[02:09:00 CEST] <c_14> libx264
[02:09:06 CEST] <DHE> yes, x264 hosted at videolan
[02:10:22 CEST] <furq> just use the static builds i pasted earlier if you don't have any special requirements
[02:10:32 CEST] <tomasm-> oh the good ol days of compiling code just to make a website work
[02:10:54 CEST] <tomasm-> furq, im stuck on ubuntu trusty  14.04
[02:11:17 CEST] <c_14> The static builds will work an most linuxes
[02:11:46 CEST] <tomasm-> confused what x264-10b-r* vs x264-r*
[02:11:59 CEST] <c_14> If you don't know what it is, you want the non 10b
[02:12:57 CEST] <tomasm-> hmmmm, im confused. it's a binary? dont i need a library, ie a .so file?
[02:13:05 CEST] <furq> they're static builds
[02:13:10 CEST] <furq> the libraries are in the binary
[02:13:59 CEST] <tomasm-> ok so what do i do with it then
[02:14:11 CEST] <tomasm-> where does it go
[02:14:19 CEST] <furq> put the binaries in /usr/local/bin
[02:14:27 CEST] <furq> and probably remove the ffmpeg you have now
[02:14:47 CEST] <tomasm-> no im talking about x264, not ffmpeg
[02:15:25 CEST] <furq> oh
[02:15:29 CEST] <furq> binaries of x264 are no good
[02:15:50 CEST] <furq> you should be able to use libx264-dev from repos if you want to go that route
[02:16:06 CEST] <furq> you should really just use the static ffmpeg builds though
[02:16:37 CEST] <tomasm-> well im using this from ruby,  so im not sure if it pipes it to ffmpeg or uses some library interface
[02:17:19 CEST] <furq> it's almost certainly just calling the binary
[02:17:40 CEST] <furq> very few languages have functional libav* bindings
[02:18:03 CEST] <TwinTailed> in libav, the output h264 video has last few seconds of the video missing, but the audio continues till the end
[02:18:20 CEST] <TwinTailed> so the video freezes in the last few seconds but the audio is still there
[02:18:33 CEST] <TwinTailed> thats in VLC however, the video files doesn't even work with Windows Media Player
[02:19:25 CEST] <tomasm-> <3 VLC <3
[02:20:58 CEST] <TwinTailed> anyone has any idea why?
[02:21:14 CEST] <c_14> are you flushing the encoder/format?
[02:21:41 CEST] <c_14> and any filterchains etc
[02:21:46 CEST] <TwinTailed> I am but I don't know if its correct
[02:22:09 CEST] <c_14> Have you tried asking on the libav-user mailing list?
[02:22:37 CEST] <TwinTailed> c_14: they didn't reply till now, I have sent an email almost 5 days ago
[02:22:39 CEST] <TwinTailed> http://pastebin.com/zduDK3hG
[02:23:20 CEST] <TwinTailed> c_14: http://pastebin.com/jtb8rSV9
[02:23:22 CEST] <tomasm-> furq, where are the binaries, i  just downloaded the package on the site and it seems to be source
[02:23:30 CEST] <TwinTailed> c_14: Is that how I should flush?
[02:23:39 CEST] <tomasm-> oh static builds?
[02:24:23 CEST] <tomasm-> why are the static builds the easiest to install and yet the last thing mentioned on the download page after a bunch of other things?
[02:24:51 CEST] <c_14> tomasm-: because the static builds aren't provided officially by the FFmpeg project
[02:25:15 CEST] <c_14> TwinTailed: I think you have to write_frame with NULL as the packet
[02:25:43 CEST] <furq> tomasm-: https://www.johnvansickle.com/ffmpeg/
[02:26:14 CEST] <Alexey_> hi all ! 2-pass Q
[02:26:16 CEST] <Alexey_> ffmpeg -y -i input -c:v libx264 -preset medium -b:v 555k -pass 1 -c:a libfdk_aac -b:a 128k -f mp4 /dev/null && \
[02:26:16 CEST] <Alexey_> ffmpeg -i input -c:v libx264 -preset medium -b:v 555k -pass 2 -c:a libfdk_aac -b:a 128k output.mp4
[02:26:21 CEST] <tomasm-> ok got them installed
[02:26:32 CEST] <Alexey_> Where does the 1st pass save intermediary data ?
[02:26:48 CEST] <Alexey_> And where from 2nd pass read it ?
[02:27:11 CEST] <Alexey_> I look at official FAQ/ guide
[02:27:12 CEST] <Alexey_> https://trac.ffmpeg.org/wiki/Encode/H.264
[02:27:49 CEST] <furq> Alexey_: the default is $PWD/ffmpeg2pass.log
[02:27:58 CEST] <furq> you can change it with -passlogfile
[02:28:08 CEST] <TwinTailed> c_14: After I do the flush for avcodec_receive_packet, the next loop I get avcodec_send_frame error
[02:28:25 CEST] <Alexey_> aha thx
[02:30:23 CEST] <c_14> TwinTailed: I'm not sure how exactly it works (I've never really used the API in depth), you might have to look at what other programs using the libraries do (like the ffmpeg binary)
[02:30:37 CEST] <Alexey_> how much better is two-pass encoding vs standard 1-pass encoding ?
[02:30:48 CEST] <TwinTailed> c_14: problem is that really few programs use the new API
[02:30:52 CEST] <TwinTailed> :P
[02:30:55 CEST] <TwinTailed> its ok i will keep trying
[02:31:03 CEST] <Alexey_> ie. 10% bitrate reduction ? 20% ?
[02:31:29 CEST] <tomasm-> crap. the video displays fine on my web page, not autorotated, but when i go full screen on it, it rotates crazy again... should i be stripping the metadata out?
[02:31:35 CEST] <furq> Alexey_: there's no reason to use 2-pass over crf unless you're targeting a particular filesize
[02:31:38 CEST] <furq> with x264, at least
[02:32:17 CEST] <furq> it also won't reduce the bitrate compared to using -b:a with 1pass
[02:32:23 CEST] <Alexey_> crf is typically used with "quality" parameter or "-b:v" bitrate parameter ?
[02:32:26 CEST] <furq> although it should improve the quality
[02:32:44 CEST] <furq> crf is the quality parameter
[02:33:00 CEST] <furq> if you don't specify anything it'll default to -crf 23
[02:33:03 CEST] <furq> lower values = higher quality
[02:33:23 CEST] <Alexey_> well I don't specify -crf but I always specify -b:v (bitrate)
[02:33:43 CEST] <furq> i meant if you don't specify -crf, -q:v or -b:v
[02:33:59 CEST] <Alexey_> aha okay
[02:40:47 CEST] <TwinTailed> In this doc page: http://ffmpeg.org/doxygen/trunk/group__lavc__encdec.html
[02:40:57 CEST] <TwinTailed> There is "End of stream situations."
[02:41:14 CEST] <TwinTailed> but when exactly do they occur? When what error do I receive and from which function??
[02:45:17 CEST] <Alexey_> furq, thanks
[02:45:33 CEST] <c_14> TwinTailed: I think if you get AVERROR EOF OR EIO
[03:19:26 CEST] <TwinTailed> c_14: From which function should i get those errors?
[03:19:35 CEST] <TwinTailed> to be count as an end of stream situation?
[07:59:59 CEST] <Spring> does -vframes override trim or work along with it (if trim is shorter than the vframes length for ex)?
[08:00:21 CEST] <furq> i assume you'll get whichever is shortest
[10:02:07 CEST] <DTON8> Hello
[10:02:35 CEST] <DTON8> I'm trying to do something, but I don't know if ffmpeg can do what I want
[10:03:07 CEST] <DTON8> I have a tcp stream of raw h264, and I want to decode it and display
[12:40:51 CEST] <trockner> is there a easy way to install the newest version of ffmpeg on ubuntu 15.04 or do i have to compile all codecs like this? https://trac.ffmpeg.org/wiki/CompilationGuide/Ubuntu
[12:44:41 CEST] <Alexey__> trockner, unless you know a specific PPA with newest version, I afraid you will have to copile (or use newest Ubuntu or Debian-unstable); I'm using Debian-testing which has reasonably recent version of ffmpeg
[12:46:15 CEST] <trockner> where can i find a ppa with the newest version?
[12:46:38 CEST] <jkqxz> trockner:  Or use a static build, such as <https://www.johnvansickle.com/ffmpeg/>.
[12:49:43 CEST] <trockner> ok thanks
[12:53:49 CEST] <MR-2> Hello
[14:27:41 CEST] <popara> Can someone tell me why the -vsync drop, never works? It just gives me av_interleaved_write_frame(): Invalid argument
[14:27:50 CEST] <popara> no matter what the input/output is
[14:58:09 CEST] <TwinTailed> What error code for the 4 functions: avcodec_send_packet, avcodec_receive_frame, avcodec_send_frame, avcodec_receive_packet, means I should flush (End of stream situation)?
[15:00:20 CEST] <BtbN> The EOF one.
[15:14:35 CEST] <TwinTailed> BtbN: From which function?
[15:14:47 CEST] <BtbN> any of them.
[15:15:29 CEST] <TwinTailed> the procedure i should do is the same for all? Or one procedure for decoding functions, and one for encoding functions?
[15:16:19 CEST] <TwinTailed> BtbN: Is this what I should do in case of encoding? http://pastebin.com/a8t6z3Xd
[15:16:56 CEST] <BtbN> if you get an EAGAIN from any of the two functions, it just means it's about time to call the other one.
[15:17:19 CEST] <BtbN> EOF means the stream is actually EOF, and all left to do is read out the remaining packets/frames until you also get an EOF there.
[15:18:26 CEST] <TwinTailed> but it already returns EOF
[15:22:03 CEST] <TwinTailed> BtbN: reading out the remaining packets/frames after sending a NULL packet?
[15:22:42 CEST] <BtbN> If you send a NULL input, it signals the encoder/decoder that the input if EOF, so it will wrap things up, give you the remaining data, and then EOF itself.
[15:24:29 CEST] <TwinTailed> BtbN: Ok, lets say avcodec_send_frame returned an EOF, so I use avcodec_send_frame(ctx, NULL); then I go into a while loop calling avcodec_receive_packet until it returns EOF?
[15:25:01 CEST] <BtbN> send_* won't return an EOF until your send it a null input.
[15:25:17 CEST] <BtbN> but otherwise, yes.
[15:27:27 CEST] <TwinTailed> BtbN: Is that different if avcodec_receive_packet returns EOF? or in such case, i should send null to avcodec_send_frame and then keep avcodec_receive_packet packets until it returns EOF?
[15:28:10 CEST] <BtbN> once the function returns EOF, you don't need to call it anymore
[15:28:35 CEST] <BtbN> if the stream goes eof, you keep feeding null packets/frames to the receive function, until it returns EOF
[15:28:54 CEST] <BtbN> to the send function
[15:29:07 CEST] <BtbN> And then read out all the reamaining data, until eof
[15:29:12 CEST] <TwinTailed> the stream you mean av_read_frame?
[15:31:40 CEST] <TwinTailed> BtbN: What do you mean "stream goes eof"?
[15:31:57 CEST] <BtbN> well, at some point there has to be an end of it.
[15:33:09 CEST] <TwinTailed> BtbN: av_read_frame this function is the one to return EOF on end of stream?
[15:33:35 CEST] <BtbN> you are telling it when you reached the end...
[15:33:38 CEST] <BtbN> by sending null input
[15:34:35 CEST] <TwinTailed> BtbN: Im sorry I got lost, where exactly should i do the flushing process?
[15:37:48 CEST] <TwinTailed> BtbN: I do a av_read_frame as usual, then start with avcodec_send_packet->avcodec_receive_frame->avcodec_send_frame->avcodec_receive_packet, and if any of those 4 function return EOF, I start flushing depending if it was encoding or decoding?
[15:38:09 CEST] <BtbN> they won't return EOF until you send it a NULL input.
[15:38:45 CEST] <TwinTailed> then how can i detect end of stream situations?
[15:40:15 CEST] <TwinTailed> BtbN: How do i detect end of stream situations then?
[16:05:06 CEST] <TwinTailed> BtbN: I got the flushing working, thanks for the help :)
[16:05:27 CEST] <TwinTailed> BtbN: But why Windows Media Players says that the media file is corrupt? While VLC can play it normally?
[16:46:28 CEST] <Spideru> Hi, I need to scale 16 bit gray image to 8 bit. What library should I use? Thank you
[16:52:34 CEST] <TwinTailed> Spideru: OpenCV, but it might be a bit complicated for such a simple task.
[16:56:41 CEST] <durandal_1707> Spideru: zcscale via lavfi
[17:01:29 CEST] <Spideru> durandal_1707: thank you!
[17:23:02 CEST] <TwinTailed> How do I get metadata of a file? If I access fmtctx->metadata, I get segmentation error
[17:53:23 CEST] <TwinTailed> My output video file has major brand isom, how can i change it to "mp42"?
[17:53:36 CEST] <TwinTailed> i am talking about libav
[17:57:10 CEST] <TwinTailed> anyone?
[17:59:00 CEST] <TwinTailed> BtbN: How can I mux an mp42 brand video? My output media file is being ISOM MP41
[18:05:02 CEST] <DHE> can it be done with the ffmpeg commandline?
[18:17:02 CEST] <TwinTailed> DHE: Can you give me the command to write?
[18:17:08 CEST] <TwinTailed> Im not experienced with the CLI
[18:32:58 CEST] <DHE> no, that was my question.
[18:54:15 CEST] <TwinTailed> DHE: idk if its possible, but as far as I know, isom is not compatible with all video players
[19:03:50 CEST] <hypfer> restating my question from ##linux here
[19:04:20 CEST] <hypfer> i have a folder full of mp3s. I want to check if they are valid (valid means beginning and end "almost" quiet)
[19:04:29 CEST] <hypfer> valid also means not more than n% clipping
[19:05:00 CEST] <hypfer> can I do that with ffmpeg? why do I want to do this? I'm running streamripper on an online radio station and I only want "good" files. automatically
[19:12:35 CEST] <DHE> hypfer: some scripting will be required. for "almost" quiet there is a filter called volumedetect that prints audio statistics at the end of the run, but you'll have to arrange for it to only receive the last few seconds of audio. that might also be possible with filters
[19:15:11 CEST] <hypfer> so basically I'll have to run ffmpeg three times. first with volumedetect on the first few seconds. then on the last and finally on all to see if its not too loud
[19:15:28 CEST] <hypfer> DHE: is there a way to get the output of the volumedetect filter more scripting friendly?
[19:53:08 CEST] <DHE> hypfer: you can run one ffmpeg to do multiple jobs on a single file. not sure how it'll work here. if you can start each command with "ffmpeg -i input.mp3" then you can do it in one shot
[20:05:58 CEST] <hypfer> it works \o/
[20:06:35 CEST] <DTON8> Hey can someone help me?
[21:04:38 CEST] <golserma__> Hi I'm wondering how can I build ffmpeg using mxe including nonfree and faac as a static win64 build?
[22:44:19 CEST] <TwinTailed> Libav is outputting the video with major brand (isom mp41), how can I make it output mp42 video?
[22:44:44 CEST] <TwinTailed> tried setting context's metadata, didn't work
[22:47:29 CEST] <flux> twintailed, movenc has option "brand" that sets the major brand
[22:47:44 CEST] <flux> it of course won't affect anything else but the brand
[22:47:53 CEST] <TwinTailed> flux: what is movenc?
[22:48:03 CEST] <flux> movenc is the module responsible for making .mp4 files
[22:48:13 CEST] <TwinTailed> you mean cli?
[22:48:13 CEST] <flux> so mp4 encoder
[22:48:22 CEST] <flux> I mean the source code
[22:48:28 CEST] <flux> it can be invoked from the command line.. somehow
[22:48:48 CEST] <TwinTailed> so libav does not support mp42?
[22:48:53 CEST] <TwinTailed> even though it can read it?
[22:49:03 CEST] <flux> well do you know how mp42 differs from mp41?
[22:49:18 CEST] <flux> I'm guessing mp42 requires some additional information inside the file
[22:49:19 CEST] <TwinTailed> no
[22:49:31 CEST] <TwinTailed> yeah i know the ISO and the atoms
[22:49:36 CEST] <flux> and if ffmpeg writes mp41, then I bet it doesn't know how to write mp42
[22:49:38 CEST] <TwinTailed> but not much experienced in mp42
[22:49:49 CEST] <flux> I mean why not just otherwise always just write mp42 and put mp41 in the compatible brands
[22:50:14 CEST] <TwinTailed> flux: why do you bet that it doesnt know?
[22:50:26 CEST] <flux> by the fact that it doesn't do it by default?
[22:51:36 CEST] <TwinTailed> flux: i would say "For more compatiblity" but most video players don't support mp41
[22:51:49 CEST] <TwinTailed> aka windows media player
[22:55:02 CEST] <TwinTailed> flux: Will mp42 support be added anytime soon?
[22:55:30 CEST] <JEEB> uhh, that sounds as if wmp doesn't support mp4 files created by FFmpeg
[22:55:38 CEST] <JEEB> while the opposite is my experience so far
[22:55:55 CEST] <JEEB> WMP does have some bugs, but most definitely I can get the files playing
[22:56:12 CEST] <JEEB> see my most useless bug report ever for example https://social.technet.microsoft.com/Forums/windows/en-US/fed910ba-0b25-48f1-8abb-39bc56095831/a-small-bug-in-windows-media-player-12-on-windows-81-and-windows-7?forum=w8itprogeneral
[22:56:38 CEST] <JEEB> (later I got a private comment from someone inside the corp that nobody cares about WMP inside MS :P )
[22:57:12 CEST] <BtbN> you probably just need to install LAVFilters and you're good
[22:57:18 CEST] <JEEB> no
[22:57:39 CEST] <JEEB> WMP12 can read files with MF and windows comes with AVC/AAC and ISOBMFF filters in MF by default
[22:57:42 CEST] <JEEB> so it won't even go to DShow
[22:58:09 CEST] <JEEB> DShow is a *fallback* in all newer versions of WMP and you have to hack around to get it to use DShow for things MS has filters for
[22:58:37 CEST] <BtbN> so they just made a bad mov parser?
[22:59:08 CEST] <JEEB> well, I haven't been able to generate a file which didn't work with WMP yet
[22:59:38 CEST] <BtbN> What's this "WMP needs mp42" stuff about then?
[23:00:12 CEST] <JEEB> let me check my sample's things but it's most definitely bullshit that ISOBMFF output by FFmpeg doesn't work with WMP
[23:01:15 CEST] <JEEB> https://fushizen.eu/samples/wmp12_mp4/merry_christmas.mp4 <- this one opens just fine in WMP for example
[23:01:43 CEST] <flux> so it seems there are two mp42's, the ISO/IEC MP4 file format version 2, and then some video encoding of the microsoft family called mp42
[23:01:58 CEST] <flux> it seems ffmpeg supports the latter but probably not the former
[23:02:52 CEST] <JEEB> the brands FFmpeg outputs are bullshit anyways, but as you can see by the file I linked that one can be opened just fine in any vanilla WMP since win7
[23:02:54 CEST] <flux> doesn't really sound to me either of them are particularly important
[23:03:55 CEST] <JEEB> and yeah, that file has major brand "isom", and then four compatible_brands
[23:04:03 CEST] <JEEB> isom, iso2, avc1, mp41
[23:04:52 CEST] <JEEB> (use L-SMASH's boxdumper with find/grep on "brand" to get a list)
[23:05:31 CEST] <TwinTailed> VLC can play the output video "isom" normally, but WMP can't, it says something about that the file is corrupt or it doesn't support that codec
[23:05:47 CEST] <JEEB> I just linked a file created by ffmpeg cli
[23:05:53 CEST] <JEEB> which uses libavformat/movenc.c
[23:06:35 CEST] <JEEB> so while I am pretty sure FFmpeg writes bullshit files in many ways if you actually start wanting to 100% follow the specs, I can most definitely say that WMP *does* play ISOBMFF that FFmpeg's muxer creates
[23:06:59 CEST] <JEEB> so if your file doesn't play, you might want to start looking into things a bit better instead of crying wolf
[23:07:00 CEST] <BtbN> I'd guess you instead put something inside of that mp4 which wmp can't play.
[23:07:22 CEST] <BtbN> Aren't there some versions of wmp without h264/mpeg2 support?
[23:08:00 CEST] <tdr> yes there are
[23:08:15 CEST] <JEEB> vista didn't have the MF filters by default, but it was released as an update later if I recall correctly
[23:08:29 CEST] <JEEB> XP is just so old that it lacked those things whatsoever
[23:09:15 CEST] <JEEB> and then you have those versions ("N" I think?) which they had to have available due to an EU thing, but those are usually only pirated in mistake, the sales of those are *very* small
[23:09:22 CEST] <JEEB> but those can still install the decoders and demuxers
[23:09:34 CEST] <TwinTailed> so the WMP with Windows 8.1 supports H264?
[23:09:38 CEST] <JEEB> yes
[23:09:45 CEST] <JEEB> or more exactly there are MF filters
[23:09:48 CEST] <JEEB> which WMP uses
[23:10:04 CEST] <JEEB> because WMP is a MF/DShow player
[23:10:09 CEST] <TwinTailed> might it be that i am writing wrong packets to the output?
[23:10:38 CEST] <JEEB> I would bet my ass at that or something like that. Try remuxing your stuff with ffmpeg cli first, then do your stuff and compare output of boxdumper
[23:11:10 CEST] <TwinTailed> "Windows Media Player cannot play the file. The Player might not support the file type or might not support the codec that was used to compress the file." that's WMP message
[23:11:15 CEST] <JEEB> also you might want to look into bitstream filtering since I'm not 100% sure that is still fully automagic
[23:11:33 CEST] <BtbN> iirc it's not automatic for mp4
[23:11:37 CEST] <BtbN> because of dashenc
[23:11:47 CEST] <TwinTailed> bitstream filtering is required?
[23:12:18 CEST] <JEEB> annex b -> avcc is required in that case
[23:12:44 CEST] <JEEB> anyways, just remux with the command line app once and see how that goes :P then start comparing with things like L-SMASH's boxdumper and shit
[23:15:31 CEST] <TwinTailed> JEEB: yeah it does work
[23:16:08 CEST] <TwinTailed> JEEB: Why my output file (With my code) produces a video with filesize 4 times bigger than the original? it works with VLC however
[23:17:28 CEST] <JEEB> how would I know what you're doing wrong :P and it's not really a big surprise that such players have support for various broken crap that people have managed to create during the years
[23:17:37 CEST] <JEEB> I've already given you plenty of hints on how to debug your issue
[23:18:37 CEST] <TwinTailed> JEEB: whats the possibility of it being because of bitsream filtering?
[23:19:20 CEST] <JEEB> -_- so you are asking me instead of looking at your goddamn output packets?
[23:19:39 CEST] <JEEB> it should be pretty damn obvious if you look at your extradata etc
[23:19:59 CEST] <TwinTailed> JEEB: What should be in my extradata?
[23:20:01 CEST] <JEEB> `boxdumper --box filename.mp4` will give you the needed offsets etc so you can open a hex editor
[23:20:33 CEST] <JEEB> TwinTailed: jesus christ... so you can complain about major brands for whatever reason but you're not capable of understanding that part of 14496-15?!
[23:21:01 CEST] <TwinTailed> JEEB: yes...
[23:21:35 CEST] <TwinTailed> JEEB: I self-learn, I don't learn from school or college you know?
[23:21:45 CEST] <JEEB> > implying this is taught in university
[23:21:50 CEST] <TwinTailed> JEEB: So I learn from people like you
[23:22:31 CEST] <JEEB> just google the document, grab it, build L-SMASH's boxdumper, grab a hex editor and start looking into the packets that you muxed
[23:23:02 CEST] <JEEB> boxdumper with the --box parameter gives you a dump of all of the boxes and all the offsets etc in a text form
[23:23:12 CEST] <TwinTailed> You and BtbN always don't give us a full answer, its not because you don't want to, its because you are really experienced in this that you think the others are just a little bit less experienced than you
[23:24:49 CEST] <radicaldev> his splaining made sense to me.
[23:25:06 CEST] <TwinTailed> last 2 paragraphs were clear
[23:25:18 CEST] <TwinTailed> other than that he was just throwing hints
[23:29:05 CEST] <JEEB> you're supposed to have some interest in your own creations, and the very least you could have done is try with the ffmpeg CLI
[23:29:08 CEST] <JEEB> which you didn't
[23:29:16 CEST] <JEEB> I'm not sure what you expect from others
[23:30:40 CEST] <TwinTailed> FFMpeg's documentation can be better
[23:30:44 CEST] <JEEB> totally
[23:30:57 CEST] <JEEB> FFmpeg also does a whole lot of crap wrong
[23:32:06 CEST] <JEEB> but still, this case is a clear case of "I didn't even try to verify if my code did the right thing" after finding out that some players didn't accept the file. also the file size being X times bigger with just a remux (?) should sound alarm bells
[23:32:45 CEST] <TwinTailed> JEEB: Its not just a remux
[23:33:02 CEST] <TwinTailed> I demux, decode and then encode the packets and mux
[23:33:35 CEST] <JEEB> but in any case, you now should have enough information to just look up if your packets look alright (mostly take a look at the extradata and if your samples adhere to the spec
[23:34:10 CEST] <JEEB> it should be pretty simple to find out if you pushed Annex B into AVCc or something like that
[23:34:16 CEST] <radicaldev> On my way out I noticed smoke in the middle of a farmer's pasture, so I told the dude who maintains it about it and he gave me a beer and we rode around trying to find the source.
[23:34:40 CEST] <radicaldev> We found this bubbling clay pit in the middle of his field that was emitting smoke/steam or whatever
[23:34:48 CEST] <radicaldev> and blowing mud all over the place
[23:35:10 CEST] <Mavrik> That sounds like a place from which H.265 came.
[23:35:14 CEST] <radicaldev> I thought it might be a gas line that broke or something, but he wasn't aware of any pipes in that area
[23:35:34 CEST] <radicaldev> geysers in east tx?
[23:35:34 CEST] <JEEB> Mavrik: hey - the spec is actually good. the business people are those who fucked it up :D
[23:35:43 CEST] <Mavrik> :P
[23:36:19 CEST] <Mavrik> I need to admit, I only had a cursory glance at the spec.
[23:36:26 CEST] <Mavrik> Did they get rid of interlaced video yet?
[23:36:35 CEST] <JEEB> they got rid of the stuff that made coding it hard
[23:36:40 CEST] <JEEB> so there's no more MBAFF/PAF
[23:36:42 CEST] <JEEB> *PAFF
[23:37:04 CEST] <JEEB> if someone wants to code fields, they still have the metadata entry to say "this coded picture is a field" but the rest of the video format doesn't give a flying fuck
[23:37:31 CEST] <Mavrik> Small victories then :=
[23:37:35 CEST] <JEEB> and when the cable tv mafia got to arms about it and started playing around MPEG rules the JCT-VC chair just told them to fuck off
[23:37:59 CEST] <JEEB> "blah blah we need special coding to get extra compression blah blah"
[23:39:51 CEST] <Mavrik> yuck
[23:39:59 CEST] <iive> iso14496-2 also almost got rid of interlace
[23:40:19 CEST] <iive> the only support was interlaced MB coding.
[23:40:27 CEST] <Mavrik> Oh well, I need to get my hands on some H.265 capable hardware slowly.
[23:40:29 CEST] <iive> afair
[23:40:55 CEST] <JEEB> yeah, 14496-10 seems to have been a sort of win for the cable companies etc
[23:41:06 CEST] <JEEB> since it got MBAFF and PAFF
[23:41:33 CEST] <JEEB> and then with 23008-2 they just got told to walk with the metadata field
[23:42:58 CEST] <Mavrik> Hmm, where do they even get gains with interlaced?
[23:43:06 CEST] <Mavrik> Since it was kinda less efficient at least with H.264
[23:43:28 CEST] <iive> same way they get gains in CRT
[23:43:44 CEST] <iive> in motion you have half resolution but full fps
[23:44:02 CEST] <iive> in static scenes you have full resolution but half fps
[23:44:05 CEST] <JEEB> Mavrik: well it's what they wanted which ended up being extra complexity in the format
[23:44:15 CEST] <JEEB> (´4@)
[23:44:26 CEST] <Mavrik> iive, yeah, but last time I checked doing H.264 at full resolution + FPS wasn't noticably worse.
[23:44:35 CEST] <Paranoialmaniac> JEEB: you can interlace by SAFF with H.265
[23:44:54 CEST] <Mavrik> And yeah, I had cable companies demand full interlaced support for their sports channels as well -_-
[23:44:54 CEST] <iive> Mavrik: interlace halves bitrate
[23:45:09 CEST] <Mavrik> Hmm, not really halves.
[23:45:23 CEST] <Mavrik> It was more like 20% best-case?
[23:45:37 CEST] <JEEB> Paranoialmaniac: is that just the metadata fields
[23:45:42 CEST] <JEEB> or something new
[23:45:44 CEST] <iive> well, it halves the picture data
[23:46:06 CEST] <Paranoialmaniac> JEEB: not a new thing. field coded picture
[23:46:51 CEST] <JEEB> so it's just the metadata field that says "I am a field"?
[23:48:09 CEST] <iive> in mpeg2 you have coded_picture that can be top/bottom field or both(frame) . Is that metadata if it is mandatory field?
[23:48:17 CEST] <Paranoialmaniac> JEEB: metadata is a SEI. it's another thing. SAFF (sequence adaptive field frame) is more limited than PAFF (picture adaptive field frame)
[23:48:35 CEST] <JEEB> ok, I need to re-check my HEVC stuff
[00:00:00 CEST] --- Mon Sep 26 2016


More information about the Ffmpeg-devel-irc mailing list