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

burek burek021 at gmail.com
Fri Jul 26 02:05:02 CEST 2013


[00:00] <axorb> hey guys, I'm transcoding a flac file to mp3, writing to a pipe
[00:00] <axorb> I need to pass along the total duration of the file
[00:02] <axorb> if outputting to a file, the duration tag/header/? is properly set
[00:07] <axorb> just a bit of explanation, I'm transcoding large flac files to mp3 and serving them with chunked-transfer (no content-length)
[00:07] <axorb> so the player doesn't know the total duration because we didn't write a header of any sort
[00:08] <axorb> I'd like to force ffmpeg to write the duration at the start, possibly calculated from ffprobe
[00:09] <klaxa> mp3 is rather headerless afaik
[00:10] <axorb> "For seekable output the muxer also writes a Xing frame at the beginning, which contains the number of frames in the file. It is useful for computing duration of VBR files."
[00:10] <klaxa> it would be metadata
[00:10] <klaxa> ah
[00:10] <axorb> so I need to fake that frame
[00:10] <klaxa> nvm then, all mp3 i messed with was just frames glued together
[02:12] <Keshl> Anyone see this? http://www.tomshardware.com/reviews/x265-hevc-encoder,3565.html
[02:13] <klaxa> yeah seen it
[02:13] <klaxa> saw a thread on /a/ Daiz was being autistic again too
[02:19] <llogan> mercurial and cmake. not interested.
[02:19] <Samus_Aran> does anyone have any tips about encoding PNG frames from a 2D animation app (zero video noise) into a very high quality AAC/AVC?  looking for almost lossless
[02:19] <Samus_Aran> the video is 1080p/60
[02:20] <Keshl> Samus_Aran: Firstly, don't use VLC to play it. It introduces noise unless you go OCD on the encoder settings.
[02:21] <Keshl> Hug http://mpc-hc.org/ instead.
[02:21] <klaxa> Keshl: wtf, that's... not what he asked at all
[02:21] <Keshl> I do 2D work sometimes too, sort of.
[02:21] <Keshl> klaxa: Getting there.
[02:21] <Samus_Aran> well, I don't get to choose the app people play it on
[02:21] <Keshl> Now, assuming you use basically anything but VLC, you can get by using X264 with a crf of 23, pretty much.
[02:21] <Keshl> If you think they might, you need to bring the CRF to like, 10 or less. x.x
[02:22] <Samus_Aran> I'll be upping them to YouTube, but the original will be downloadable
[02:22] <llogan> https://trac.ffmpeg.org/wiki/x264EncodingGuide
[02:22] <llogan> https://trac.ffmpeg.org/wiki/AACEncodingGuide
[02:23] <klaxa> ah also, re: x265, on my system it produces a floating point exception
[02:23] <Keshl> o.O' How come everyone keeps dialing the wrong number with me?
[02:23] <Keshl> Wrong window.
[02:23] <klaxa> didn't bother to run it through gdb after that, though
[02:23] <llogan> Samus_Aran: for youtube: ffmpeg -i input -codec:v libx264 -crf 18 -codec:a copy output.mkv
[02:26] <llogan> for download: ffmpeg -i input -codec:v libx264 -crf <up to you> -preset <choose one> -tune animation -pix_fmt yuv420p -codec:a libfdk_aac -vbr 4 output.mp4
[02:29] <Samus_Aran> llogan: why would they be different for YouTube or download?  doesn't YouTube re-encode everything received?
[02:29] <Samus_Aran> I may just upload it to YouTube in 4K format, as YouTube now seems to support sizes above 1080p
[02:36] <Samus_Aran> why does -vbr 5 only encode to 80-96 Kbps?
[02:36] <Samus_Aran> that seems excessively low for full quality
[02:37] <Samus_Aran> my audio is in 24bit/96KHz
[02:39] <Samus_Aran> how do you disable the -cutoff?
[02:49] <mAGiC69> Hi, when using 2 passes I see that options I pass are not used, for example: -me_method and -trellis. Am I doing something wrong that overrides the command line ? these are the command i'm running: ffmpeg -y -i input.mp4 -pass 1 -b:v 6000000 -ab 192000 -s 1920x1080 -passlogfile 1passlog -vcodec libx264 -g 90 -bf 3 -refs 1 -b_strategy 2 -coder 1 -qmin 10 -qmax 51 -sc_threshold 40 -flags +loop -me_range 16
[02:49] <mAGiC69>  -me_method dia -subq 2 -i_qfactor 0.71 -qcomp 0.6 -qdiff 4 -direct-pred 3 -trellis 1 -partitions -parti8x8-parti4x4-partp8x8-partb8x8 -r 48 -keyint_min 25 -wpredp 2 -acodec libfaac -ar 44100 /output.mp4
[02:49] <mAGiC69> ffmpeg -y -i input.mp4 -pass 2 -b:v 6000000 -ab 192000 -s 1920x1080 -passlogfile 1passlog -vcodec libx264 -g 90 -bf 3 -refs 1 -b_strategy 2 -coder 1 -qmin 10 -qmax 51 -sc_threshold 40 -flags +loop -me_range 16 -me_method umh -subq 2 -i_qfactor 0.71 -qcomp 0.6 -qdiff 4 -direct-pred 3 -trellis 2 -partitions -parti8x8-parti4x4-partp8x8-partb8x8 -r 48 -keyint_min 25 -wpredp 2 -acodec libfaac -ar 44100 -movfl
[02:49] <mAGiC69> ags faststart /output.mp4
[04:51] <mxmader> hello - just have a documentation update for you - WRT https://trac.ffmpeg.org/wiki/CompilationGuide
[04:52] <mxmader> when compiling libx264 on fedora (18), i needed to add "perl-Digest-MD5" to the list of RPMs
[04:52] <mxmader> apologies - the URL in question is https://trac.ffmpeg.org/wiki/CentosCompilationGuide
[05:05] <mxmader> previously, the above would cause libx264 compilation to fail, and cascading that failure to ffmpeg itself.
[05:05] <mxmader> it's compiling successfully now...
[12:16] <smadamr> Anyone have some resources for learning the difference between -b:a and -ar flags?
[12:23] <relaxed> smadamr: -b:a sets the bitrate and -a:r sets the sampling rate.
[12:24] <relaxed> er, I think you meatn -ar
[12:24] <relaxed> meant*
[12:24] <relaxed> or maybe -r:a
[12:25] <relaxed> oh, someone needs sleep
[12:26] <smadamr> cool thanks....yea we all need sleep sometimes ^_^
[13:53] <t4nk915> hi
[13:54] <t4nk915> does anyone know how to set timeout value in the arg list when I start ffmpeg?
[13:54] <t4nk915> I mean http timeout
[13:54] <t4nk915> for example
[13:54] <t4nk915> my ffmpeg command is :ffmpeg -loglevel debug -f video4linux2 -r 30 -s 1280x720 -input_format h264 -i /dev/video1 -vcodec copy http://localhost:8090/feed2
[13:55] <t4nk915> then how to add http timeout value in agr list?
[13:55] <t4nk915> any idea?
[14:12] <smadamr> i'm converting speex to aac and have clicking and popping at the start of the stream, after the conversion. Anyone seen this before?
[14:13] <durandal_1707> smadamr: what aac encoder you use?
[14:14] <smadamr> originally plain, built-in aac, then I realized that could have been the problem and have changed to libfdk_aac
[14:14] <smadamr> still, the popping/clicking occurs though
[14:23] <durandal_1707> smadamr: what sample rate?
[14:24] <smadamr> the original sample rate is 16000, i've converted to 16k and to 44100 - just for some experimenting to see if it helped
[14:25] <smadamr> the strange thing is that I can convert speex -> vorbis without clicks, and then vorbix -> aac without clicks, but speex->aac always gives clicks
[15:16] <luc4> Hi! When muxing, how do I tell ffmpeg what kind of muxer to use? I'm reading the muxing.c sample code, but it seems the container is set according to the extension of the output file. But if I tried to mux into a buffer? How can I specify the container to use?
[15:16] <klaxa> luc4: -f <container>
[15:17] <ItsMeLenny> is there a way to copy just one video stream?
[15:17] <luc4> klaxa: sorry, I'm referring to libavformat
[15:17] <klaxa> for example: ffmpeg -i <input> -c copy -f matroska pipe: | <matroskaplayer>
[15:17] <luc4> klaxa: not the ffmpeg executable
[15:17] <ItsMeLenny> and does specifying the output file name with extension automatically detect the container
[15:17] <klaxa> ah... hmm... dunno
[15:19] <klaxa> ItsMeLenny: you can copy only one video stream if you use -map
[15:19] <klaxa> for example to copy the first video stream and the second audio stream use: ffmpeg -i <input> -map 0:v:0 -map 0:a:1 <output>
[15:20] <klaxa> ah needs -c copy too
[15:20] <klaxa> and yes ffmpeg will try to detect the correct container according to the output filename's extension
[15:21] <ItsMeLenny> ah sweet
[15:21] <ItsMeLenny> i'll try that now
[15:22] <ItsMeLenny> i just found that a video i had contained 4 different quality versions within it :P
[15:24] <ItsMeLenny> hmmm doesnt seem to be working for me
[15:24] <klaxa> maybe your ffmpeg version is too old?
[15:25] <Fjorgynn> probably
[15:28] <ItsMeLenny> "Failed to set value 'copy' for option 'c'", also i'm actually using avconv
[15:28] <ItsMeLenny> (ubuntu)
[15:28] <ItsMeLenny> "Unrecognized option 'c'"
[15:30] <ItsMeLenny> ah i think i got it
[16:08] <luc4> Hi! Anyone with experience with avformat_alloc_output_context2? I'm using that function with a output file name and after muxing, the result is correct. When instead I pass a AVOutputContext created with av_guess_format, I get a result almost identical, apart from a couple of bytes, but the file does not play with vlc.
[17:04] <luc4> Anyone able to write muxed frames using the callbacks instead of writing to file directly? It seems that slightly different data is passed when the callbacks are used.
[18:16] <luc4> Is the write callback for avio supposed to do something particular before writing the resulting video file?
[20:09] <rurtle> Hey guys
[20:10] <rurtle> I'm trying to write a skeletal app for displaying rtsp streams from a cam connected over lan
[20:10] <rurtle> *LAN
[20:11] <rurtle> I've already compiled the ffmpeg for target platform and it gave out the ffmpeg so file just fine
[20:11] <rurtle> can anyone suggest some pointers/links/documentation on how to write JNI wrapper for it
[20:12] <rurtle> I'm absolutely new to android development
[20:12] <rurtle> Will really appreciate your help on this matter
[20:22] <rurtle> BTW, I missed the fact that the app is for Android (ICS)
[20:35] <mkrufky> recent android has its own api for multimedia playback... i dont think u need to deal w ffmpeg
[20:39] <rurtle> Yeah, right. However, the usage of native api's resulted in flicker in real-time streaming from IP cam
[20:40] <rurtle> Also, I may have to make it to work for some earlier versions as well
[20:40] <mkrufky> my guess is that you'll get better results debugging the media content to figure out why it plays weird on your device rather than switching out the player
[20:41] <mkrufky> streaming on android before 4.2 is kinda not great
[20:41] <rurtle> Hmm. I should have done some digging on that
[20:41] <rurtle> meaning why the native player didn't perform well enough
[20:41] <mkrufky> another helpful hint, try on some other devices and see if they have the same issues, or if they have similar but different issues
[20:42] <mkrufky> what kind of flicker?  is it a deinterlacing issue?
[20:42] <mkrufky> mobile devices generally dont love interlaced content, and webcams love to stream interlaced content
[20:42] <rurtle> like there is considerable latency and the playback freezes and comes back after some time and goes back to sleep again
[20:42] <mkrufky> note im using the words "love to" ... im generalizing ... its really device specific
[20:42] <rurtle> that sort of behavior
[20:43] <mkrufky> ah, so its not a flicker
[20:43] <mkrufky> it sounds like a buffering issue
[20:43] <rurtle> my bad
[20:43] <rurtle> and the device we tried it on, is an old one
[20:44] <mkrufky> yea... debugging from that point is just spinning your wheels
[20:44] <mkrufky> (in my opinion)
[20:45] <rurtle> I did a local build of VLC and ported in on both 4.2.2 & 4.1.2
[20:45] <rurtle> hmm
[20:45] <rurtle> and it works just fine on either of those platforms
[20:45] <rurtle> however, when we have multiple streams to observe, VLC is not able to clean up cache
[20:46] <rurtle> and leads back to old rtsp stream
[20:46] <rurtle> so, thought of using the base ffmpeg engine and tweak it as per my need
[20:47] <mkrufky> i thought u said you tried the native player
[20:47] <mkrufky> vlc is not the native player :-P
[20:48] <rurtle> :)
[20:48] <rurtle> yeah, I tried several means
[20:48] <rurtle> that includes building the native library and (trying to) write JNI wrapper
[20:49] <rurtle> and doing a local build of VLC latest from git
[20:51] <mkrufky> well, im not sure what the overall plan is
[20:51] <mkrufky> but
[20:51] <mkrufky> i was under the impression that the native playback api's of jellybean let you play rtsp streams
[20:52] <mkrufky> i know for SURE it plays HLS, but thats not what u asked :-P
[20:58] <rurtle> The overall plan is to stream several live cam feeds through an android app. The app should be flexible enough to run on multiple platforms
[20:59] <rurtle> I am yet to have a clear visibility on the deliverable in terms of which all platform it should support among other things
[20:59] <rurtle> Thanks for the tip on HLS player; I haven't checked it yet. Will definitely do.
[21:18] <raj___> I am seeing some flv video contents which has range requests using "ns" and "nk" parameter associated with response..Can anyone help me to understand these params here is the example URL http://65.255.34.10/abc/676EFE25A034833FBAA744744/0300020100518AB037DBAD083E081B1639E918-A7E6-C819-272E-33B18308FFC6.flv?nk=58295655633_22813052992&ns=0_22166660&special=true  and for nk param here is the URL: /abc/6571DFBC8E132831F2D4DA3D31/03000203
[21:19] <raj___> and for nk param here is the URL: /abc/6571DFBC8E132831F2D4DA3D31/030002030051C99005966008565B268B39BDC7-D4DA-386A-772D-4B73E83A8B47.flv?nk=66933666410_22881099153&ns=0_216384&special=true HTTP/1.1\r\n
[21:24] <raj___> <fflogger> i am using basic ffmpeg command for transcoding. this problem is when we do seeking.. i am not able to understand this "ns" and "nk" significanse
[21:26] <llogan> seeking with what?
[21:27] <raj___> seeking forward
[21:29] <raj___> For FLV the "from" and "to" offset s are encoded in the ns query parameter?
[21:29] <raj___> i am confused here
[21:30] <raj___> http://65.255.34.10/abc/676EFE25A034833FBAA744744/0300020100518AB037DBAD083E081B1639E918-A7E6-C819-272E-33B18308FFC6.flv?nk=58295655633_22813052992&ns=0_22166660&special=true
[21:30] <raj___> &ns=0_22166660&special=true
[21:34] <llogan> i don't see what this has to do with ffmpeg, but I don't quite understand what you're trying to do.
[22:22] <Fjorgynn> so the internal mp3 encoder in ffmpeg
[22:22] <Fjorgynn> lafv54 or whatever
[22:26] <durandal_1707> Fjorgynn: there is not internal mp3 encoder in ffmpeg
[22:28] <Fjorgynn> durandal_1707: encoder         : Lavf54.50.104
[22:28] <Fjorgynn> what is this then?
[22:30] <Fjorgynn> durandal_1707:
[22:30] <durandal_1707> container != codec
[22:31] <Fjorgynn> so I wonder what encoder that is
[22:32] <durandal_1707> that is not encoder
[22:32] <durandal_1707> libmp3lame is not internal mp3 encoder
[22:33] <durandal_1707> it is external mp3 encoder
[22:33] <Fjorgynn> yeah?
[22:33] <Fjorgynn> but whatever
[22:33] <durandal_1707> ... what was question?
[22:35] <Fjorgynn> it just does -acodec copy hm
[22:36] <Fjorgynn> I was using a script to download some files I know are mp3
[22:40] <durandal_1707> so everything works....
[22:54] <Fjorgynn> durandal_1707: yeah, I was just wondering what it did. Then I saw it copied it and I was asking what laf54 ment
[22:58] <llogan> libavformat version 54.50.104
[22:59] <Fjorgynn> aha?
[23:34] <salamanderrake> anyone know why the output from this screen is black on twitch.tv? http://bpaste.net/show/117396/
[23:43] <llogan> salamanderrake: i have an idea, but it is only a guess without the ffmpeg console output
[00:00] --- Fri Jul 26 2013


More information about the Ffmpeg-devel-irc mailing list