Opened 13 years ago
Closed 10 years ago
#1275 closed defect (fixed)
ffserver x264 presets
Reported by: | burek | Owned by: | mastered |
---|---|---|---|
Priority: | normal | Component: | ffserver |
Version: | git-master | Keywords: | |
Cc: | Blocked By: | ||
Blocking: | Reproduced by developer: | yes | |
Analyzed by developer: | no |
Description
ffserver is started with a simple config file (ffserver.conf) that defined only libx264 flv output and ffmpeg is started to feed the ffserver after which the error is received, which I don't know how to get around, because I don't know how to set "-vpre" or "-preset" in ffserver.conf file (when I try to set -vpre or -preset at ffmpeg's command line, I get the same error as provided here):
ffserver.conf:
Port 8090 BindAddress 0.0.0.0 CustomLog - <Feed feed1.ffm> File /tmp/feed1.ffm FileMaxSize 200K ACL allow 127.0.0.1 </Feed> <Stream test1.flv> Feed feed1.ffm Format flv NoAudio VideoCodec libx264 VideoFrameRate 25 AVOptionVideo flags +global_header </Stream> <Stream stat.html> Format status ACL allow localhost ACL allow 192.168.0.0 192.168.255.255 </Stream> <Redirect index.html> URL http://www.ffmpeg.org/ </Redirect>
the result:
# ffserver -d -f ffserver.conf & # ffmpeg -i http://10.1.2.3:45678 -vf yadif http://localhost:8090/feed1.ffm ffmpeg version git-2012-05-03-28d37f7 Copyright (c) 2000-2012 the FFmpeg developers built on May 3 2012 13:43:26 with gcc 4.6.3 configuration: --enable-gpl --enable-libfaac --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libx264 --enable-nonfree --enable-version3 libavutil 51. 49.100 / 51. 49.100 libavcodec 54. 17.101 / 54. 17.101 libavformat 54. 3.100 / 54. 3.100 libavdevice 53. 4.100 / 53. 4.100 libavfilter 2. 72.104 / 2. 72.104 libswscale 2. 1.100 / 2. 1.100 libswresample 0. 11.100 / 0. 11.100 libpostproc 52. 0.100 / 52. 0.100 [mpeg2video @ 0x2232c40] mpeg_decode_postinit() failure Last message repeated 5 times [mpegts @ 0x222d120] max_analyze_duration 5000000 reached at 5016000 [mpegts @ 0x222d120] Estimating duration from bitrate, this may be inaccurate Input #0, mpegts, from 'http://10.1.2.3:45678': Duration: N/A, start: 1787.574700, bitrate: 15256 kb/s Program 1714 Stream #0:0[0x58c]: Video: mpeg2video (Main) ([2][0][0][0] / 0x0002), yuv420p, 720x576 [SAR 64:45 DAR 16:9], 15000 kb/s, 25.82 fps, 25 tbr, 90k tbn, 50 tbc Stream #0:1[0x596]: Audio: mp2 ([3][0][0][0] / 0x0003), 48000 Hz, stereo, s16, 256 kb/s [buffer @ 0x2428500] w:720 h:576 pixfmt:yuv420p tb:1/1000000 sar:64/45 sws_param:flags=2 [scale @ 0x2233f60] w:720 h:576 fmt:yuv420p sar:64/45 -> w:160 h:128 fmt:yuv420p sar:64/45 flags:0x4 [libx264 @ 0x2277080] broken ffmpeg default settings detected [libx264 @ 0x2277080] use an encoding preset (e.g. -vpre medium) [libx264 @ 0x2277080] preset usage: -vpre <speed> -vpre <profile> [libx264 @ 0x2277080] speed presets are listed in x264 --help [libx264 @ 0x2277080] profile is optional; x264 defaults to high Output #0, ffm, to 'http://localhost:8090/feed1.ffm': Stream #0:0: Video: h264, yuv420p, 160x128 [SAR 64:45 DAR 16:9], q=2-31, 128 kb/s, 1000k tbn, 25 tbc Stream mapping: Stream #0:0 -> #0:0 (mpeg2video -> libx264) Error while opening encoder for output stream #0:0 - maybe incorrect parameters such as bit_rate, rate, width or height
Generally, when I start ffmpeg only (without ffserver) no matter what libx264 options I give at cmd line, ffmpeg will fill out other (missing) options, like bitrate, width/height, etc with some default values. When I use ffserver with same ffmpeg cmd lines, I usually get this kind of "vpre error" mentioned above. How can I work around that error?
Please help, thanks in advance.
Change History (14)
comment:1 by , 12 years ago
comment:2 by , 12 years ago
adding a few properties seems to do the trick:
AVOptionVideo me_range 16
AVOptionVideo qdiff 4
AVOptionVideo qmin 10
AVOptionVideo qmax 51
comment:3 by , 12 years ago
however vlc and mplayer seem unable to decode the stream.. maybe some settings are wrong?
comment:4 by , 12 years ago
quick update: with a flv player the streaming seems to work.. also tried with rtmp and it's good
comment:5 by , 11 years ago
So is there any improvement on this situation?
Has there been any development on ffserver that would allow users to set a preset and profile for x264? Also it would be great to tune..
At least webm streaming seems to be working..
comment:6 by , 11 years ago
Component: | undetermined → FFserver |
---|
comment:7 by , 11 years ago
Priority: | normal → important |
---|---|
Version: | unspecified → git-master |
comment:9 by , 11 years ago
Analyzed by developer: | set |
---|---|
Owner: | set to |
Reproduced by developer: | set |
Status: | new → open |
comment:10 by , 11 years ago
Analyzed by developer: | unset |
---|
comment:11 by , 11 years ago
Just to simplify: how do we pass following in ffserver.conf
-preset ultrafast -pix_fmt yuv420p
comment:12 by , 11 years ago
According to this ticket #2954 "-pix_fmt yuv420p" should be:
PixelFormat yuv420p
I'm not sure about "-preset" (actually "-preset:v")
comment:13 by , 10 years ago
This is due to a limitation in ffserver, only few parameters can be set from the configuration file and no codec private options.
To workaround the issue at the moment it is required to use the override_ffserver on the ffmpeg side and set the option on the ffmpeg commandline. A proper fix would require the extension of the ffm format in order to be able to set generic option names.
comment:14 by , 10 years ago
Resolution: | → fixed |
---|---|
Status: | open → closed |
Fixed by 745730c9c208c40f800d5d71ffa39aceab6ce044
Further improvements are committed later.
same here with git a5c1a0c, tested with windows and linux
(see also duplicate #1461)