-
Notifications
You must be signed in to change notification settings - Fork 853
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Added OpenSSL & various protocol support to FFmpeg backend #229
Conversation
- Fixed Docker dependencies (both x86 & x86-64) - Fixes bug opencv#204
@native-api I tested these changes on my machine and this fixes my bug too. Also, I didn't use |
Looks good. I have to build the Docker images locally and push them to quay.io. I'll try to make new releases during next month. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I doubt CentOS' stock OpenSSL is either safe to use, or even generally usable now. It doesn't even support TLS 1.1. Have to build a new version from source, I'm afraid.
docker/Dockerfile_i686
Outdated
@@ -23,7 +23,7 @@ RUN curl -O -L https://cmake.org/files/v3.9/cmake-3.9.0.tar.gz && \ | |||
cd .. && \ | |||
rm -rf cmake-3.9.0* | |||
|
|||
RUN yum install autoconf automake bzip2 cmake freetype-devel gcc gcc-c++ libtool make mercurial pkgconfig zlib-devel -y && \ | |||
RUN yum install autoconf automake bzip2 cmake freetype-devel gcc gcc-c++ libtool make mercurial pkgconfig openssl-devel zlib-devel -y && \ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
CentOS 5's openssl
is 0.9.8e which is ancient. Is it safe to use?..
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
CentOS 5's openssl is 0.9.8e which is ancient. Is it safe to use?..
@native-api Wow, I didn't know that will be a problem too. Anyhow, I found this simple tutorial to do that. Should I make these changes?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'd go the same way other ffmpeg dependencies are built but that guide looks like a good reference point. Can't say much more, it's your job to see that everything hooks up nicely.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@native-api Does this library links to an apt-installed FFmpeg in any case or only use this precompiled FFmpeg? I'm not 100% sure that if this patch worked on my machine due to these changes or it used my system FFmpeg during compiling while I'm testing.
docker/Dockerfile_i686
Outdated
@@ -50,7 +50,7 @@ RUN yum install autoconf automake bzip2 cmake freetype-devel gcc gcc-c++ libtool | |||
tar xjvf ffmpeg-snapshot.tar.bz2 && \ | |||
cd ffmpeg && \ | |||
PATH=~/bin:$PATH && \ | |||
PKG_CONFIG_PATH="$HOME/ffmpeg_build/lib/pkgconfig" ./configure --prefix="$HOME/ffmpeg_build" --extra-cflags="-I$HOME/ffmpeg_build/include" --extra-ldflags="-L$HOME/ffmpeg_build/lib" --enable-libvpx --enable-shared --enable-pic --bindir="$HOME/bin" && \ | |||
PKG_CONFIG_PATH="$HOME/ffmpeg_build/lib/pkgconfig" ./configure --prefix="$HOME/ffmpeg_build" --extra-cflags="-I$HOME/ffmpeg_build/include" --extra-ldflags="-L$HOME/ffmpeg_build/lib" --enable-libvpx --enable-openssl --enable-protocol=file,ftp,http,https,httpproxy,hls,mmsh,mmst,pipe,rtmp,rtmps,rtmpt,rtmpts,rtp,sctp,srtp,tcp,udp --enable-shared --enable-pic --bindir="$HOME/bin" && \ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is there a particular reason to enable these specific protocols? By default, all supported protocols are enabled AFAICS.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
(Not criticizing, just wondering since this looks like just a copied full list at first glance but it's not actually the full list.)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is there a particular reason to enable these specific protocols? By default, all supported protocols are enabled AFAICS.
@native-api Thanks for pointing this out. No there is no specific reason, I just thought these are the most commonly used protocols. Should I remove them?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes. I don't think we should change the default without a real reason (I'm not implying that there's none, just that none was presented).
- updates to OpenSSL build from scratch - removed specific protocol - Added neccessary dependency
@skvark Kindly review new changes/commit I recently added. Thank you. |
@abhiTronix Did you test your changes? The x64 dockerfile at least fails for me with To make it clear when you are ready to show your changes, you can make a branch for testing and merge it to the PR branch when you are ready. |
Yes, there were no errors on my machine(Ubuntu 16.04 x64). The wheel file generated, ran without whatsoever failure or error like as before.
But all other commands in docker is called with
On what machine are you testing? this package is meant for CentOS, and it's a valid package FYI.
Sorry but another branch will be waste of time. If you think something is wrong, Kindly point me in that direction to solve it rather than making it more confusing. Thank you. |
Commands specified in a Dockerfile do not run directly on your system. They instead run in the container specified in |
The I originally assumed that the
One addition (if possible): I would like to see also the output of |
@skvark and @native-api Thank you for explaining thoroughly.
Also, [root@aaea5958fff2 ffmpeg]# PKG_CONFIG_PATH="$HOME/ffmpeg_build/lib/pkgconfig" ./configure --prefix="$HOME/ffmpeg_build" --extra-cflags="-I$HOME/ffmpeg_build/include" --extra-ldflags="-L$HOME/ffmpeg_build/lib" --enable-openssl --enable-libvpx --enable-shared --enable-pic --bindir="$HOME/bin"
install prefix /root/ffmpeg_build
source path .
C compiler gcc
C library glibc
ARCH x86 (generic)
big-endian no
runtime cpu detection yes
standalone assembly yes
x86 assembler nasm
MMX enabled yes
MMXEXT enabled yes
3DNow! enabled yes
3DNow! extended enabled yes
SSE enabled yes
SSSE3 enabled yes
AESNI enabled yes
AVX enabled yes
AVX2 enabled yes
AVX-512 enabled yes
XOP enabled yes
FMA3 enabled yes
FMA4 enabled yes
i686 features enabled yes
CMOV is fast yes
EBX available yes
EBP available yes
debug symbols yes
strip symbols yes
optimize for size no
optimizations yes
static yes
shared yes
postprocessing support no
network support yes
threading support pthreads
safe bitstream reader yes
texi2html enabled no
perl enabled yes
pod2man enabled yes
makeinfo enabled no
makeinfo supports HTML no
External libraries:
iconv openssl
libvpx zlib
External libraries providing hardware acceleration:
Libraries:
avcodec avformat swscale
avdevice avutil
avfilter swresample
Programs:
ffmpeg ffprobe
Enabled decoders:
aac flashsv2 pixlet
aac_fixed flic pjs
aac_latm flv png
aasc fmvc ppm
ac3 fourxm prores
ac3_fixed fraps prosumer
adpcm_4xm frwu psd
adpcm_adx g2m ptx
adpcm_afc g723_1 qcelp
adpcm_agm g729 qdm2
adpcm_aica gdv qdmc
adpcm_ct gif qdraw
adpcm_dtk gremlin_dpcm qpeg
adpcm_ea gsm qtrle
adpcm_ea_maxis_xa gsm_ms r10k
adpcm_ea_r1 h261 r210
adpcm_ea_r2 h263 ra_144
adpcm_ea_r3 h263i ra_288
adpcm_ea_xas h263p ralf
adpcm_g722 h264 rasc
adpcm_g726 hap rawvideo
adpcm_g726le hcom realtext
adpcm_ima_amv hevc rl2
adpcm_ima_apc hnm4_video roq
adpcm_ima_dat4 hq_hqa roq_dpcm
adpcm_ima_dk3 hqx rpza
adpcm_ima_dk4 huffyuv rscc
adpcm_ima_ea_eacs hymt rv10
adpcm_ima_ea_sead iac rv20
adpcm_ima_iss idcin rv30
adpcm_ima_oki idf rv40
adpcm_ima_qt iff_ilbm s302m
adpcm_ima_rad ilbc sami
adpcm_ima_smjpeg imc sanm
adpcm_ima_wav imm4 sbc
adpcm_ima_ws indeo2 scpr
adpcm_ms indeo3 screenpresso
adpcm_mtaf indeo4 sdx2_dpcm
adpcm_psx indeo5 sgi
adpcm_sbpro_2 interplay_acm sgirle
adpcm_sbpro_3 interplay_dpcm sheervideo
adpcm_sbpro_4 interplay_video shorten
adpcm_swf jacosub sipr
adpcm_thp jpeg2000 smackaud
adpcm_thp_le jpegls smacker
adpcm_vima jv smc
adpcm_xa kgv1 smvjpeg
adpcm_yamaha kmvc snow
agm lagarith sol_dpcm
aic libvpx_vp8 sonic
alac libvpx_vp9 sp5x
alias_pix loco speedhq
als lscr srgc
amrnb m101 srt
amrwb mace3 ssa
amv mace6 stl
anm magicyuv subrip
ansi mdec subviewer
ape metasound subviewer1
apng microdvd sunrast
aptx mimic svq1
aptx_hd mjpeg svq3
arbc mjpegb tak
ass mlp targa
asv1 mmvideo targa_y216
asv2 motionpixels tdsc
atrac1 movtext text
atrac3 mp1 theora
atrac3al mp1float thp
atrac3p mp2 tiertexseqvideo
atrac3pal mp2float tiff
atrac9 mp3 tmv
aura mp3adu truehd
aura2 mp3adufloat truemotion1
avrn mp3float truemotion2
avrp mp3on4 truemotion2rt
avs mp3on4float truespeech
avui mpc7 tscc
ayuv mpc8 tscc2
bethsoftvid mpeg1video tta
bfi mpeg2video twinvq
bink mpeg4 txd
binkaudio_dct mpegvideo ulti
binkaudio_rdft mpl2 utvideo
bintext msa1 v210
bitpacked mscc v210x
bmp msmpeg4v1 v308
bmv_audio msmpeg4v2 v408
bmv_video msmpeg4v3 v410
brender_pix msrle vb
c93 mss1 vble
cavs mss2 vc1
ccaption msvideo1 vc1image
cdgraphics mszh vcr1
cdxl mts2 vmdaudio
cfhd mvc1 vmdvideo
cinepak mvc2 vmnc
clearvideo mwsc vorbis
cljr mxpeg vp3
cllc nellymoser vp4
comfortnoise nuv vp5
cook on2avc vp6
cpia opus vp6a
cscd paf_audio vp6f
cyuv paf_video vp7
dca pam vp8
dds pbm vp9
dfa pcm_alaw vplayer
dirac pcm_bluray vqa
dnxhd pcm_dvd wavpack
dolby_e pcm_f16le wcmv
dpx pcm_f24le webp
dsd_lsbf pcm_f32be webvtt
dsd_lsbf_planar pcm_f32le wmalossless
dsd_msbf pcm_f64be wmapro
dsd_msbf_planar pcm_f64le wmav1
dsicinaudio pcm_lxf wmav2
dsicinvideo pcm_mulaw wmavoice
dss_sp pcm_s16be wmv1
dst pcm_s16be_planar wmv2
dvaudio pcm_s16le wmv3
dvbsub pcm_s16le_planar wmv3image
dvdsub pcm_s24be wnv1
dvvideo pcm_s24daud wrapped_avframe
dxa pcm_s24le ws_snd1
dxtory pcm_s24le_planar xan_dpcm
dxv pcm_s32be xan_wc3
eac3 pcm_s32le xan_wc4
eacmv pcm_s32le_planar xbin
eamad pcm_s64be xbm
eatgq pcm_s64le xface
eatgv pcm_s8 xl
eatqi pcm_s8_planar xma1
eightbps pcm_u16be xma2
eightsvx_exp pcm_u16le xpm
eightsvx_fib pcm_u24be xsub
escape124 pcm_u24le xwd
escape130 pcm_u32be y41p
evrc pcm_u32le ylc
exr pcm_u8 yop
ffv1 pcm_vidc yuv4
ffvhuff pcm_zork zero12v
ffwavesynth pcx zerocodec
fic pgm zlib
fits pgmyuv zmbv
flac pgssub
flashsv pictor
Enabled encoders:
a64multi libvpx_vp8 png
a64multi5 libvpx_vp9 ppm
aac ljpeg prores
ac3 magicyuv prores_aw
ac3_fixed mjpeg prores_ks
adpcm_adx mlp qtrle
adpcm_g722 movtext r10k
adpcm_g726 mp2 r210
adpcm_g726le mp2fixed ra_144
adpcm_ima_qt mpeg1video rawvideo
adpcm_ima_wav mpeg2video roq
adpcm_ms mpeg4 roq_dpcm
adpcm_swf msmpeg4v2 rv10
adpcm_yamaha msmpeg4v3 rv20
alac msvideo1 s302m
alias_pix nellymoser sbc
amv opus sgi
apng pam snow
aptx pbm sonic
aptx_hd pcm_alaw sonic_ls
ass pcm_dvd srt
asv1 pcm_f32be ssa
asv2 pcm_f32le subrip
avrp pcm_f64be sunrast
avui pcm_f64le svq1
ayuv pcm_mulaw targa
bmp pcm_s16be text
cinepak pcm_s16be_planar tiff
cljr pcm_s16le truehd
comfortnoise pcm_s16le_planar tta
dca pcm_s24be utvideo
dnxhd pcm_s24daud v210
dpx pcm_s24le v308
dvbsub pcm_s24le_planar v408
dvdsub pcm_s32be v410
dvvideo pcm_s32le vc2
eac3 pcm_s32le_planar vorbis
ffv1 pcm_s64be wavpack
ffvhuff pcm_s64le webvtt
fits pcm_s8 wmav1
flac pcm_s8_planar wmav2
flashsv pcm_u16be wmv1
flashsv2 pcm_u16le wmv2
flv pcm_u24be wrapped_avframe
g723_1 pcm_u24le xbm
gif pcm_u32be xface
h261 pcm_u32le xsub
h263 pcm_u8 xwd
h263p pcm_vidc y41p
huffyuv pcx yuv4
jpeg2000 pgm zlib
jpegls pgmyuv zmbv
Enabled hwaccels:
Enabled parsers:
aac dvd_nav mpegvideo
aac_latm dvdsub opus
ac3 flac png
adx g723_1 pnm
av1 g729 rv30
avs2 gif rv40
bmp gsm sbc
cavsvideo h261 sipr
cook h263 tak
dca h264 vc1
dirac hevc vorbis
dnxhd mjpeg vp3
dpx mlp vp8
dvaudio mpeg4video vp9
dvbsub mpegaudio xma
Enabled demuxers:
aa iff pcm_s8
aac ifv pcm_u16be
ac3 ilbc pcm_u16le
acm image2 pcm_u24be
act image2_alias_pix pcm_u24le
adf image2_brender_pix pcm_u32be
adp image2pipe pcm_u32le
ads image_bmp_pipe pcm_u8
adx image_dds_pipe pcm_vidc
aea image_dpx_pipe pjs
afc image_exr_pipe pmp
aiff image_gif_pipe pva
aix image_j2k_pipe pvf
amr image_jpeg_pipe qcp
amrnb image_jpegls_pipe r3d
amrwb image_pam_pipe rawvideo
anm image_pbm_pipe realtext
apc image_pcx_pipe redspark
ape image_pgm_pipe rl2
apng image_pgmyuv_pipe rm
aptx image_pictor_pipe roq
aptx_hd image_png_pipe rpl
aqtitle image_ppm_pipe rsd
asf image_psd_pipe rso
asf_o image_qdraw_pipe rtp
ass image_sgi_pipe rtsp
ast image_sunrast_pipe s337m
au image_svg_pipe sami
avi image_tiff_pipe sap
avr image_webp_pipe sbc
avs image_xpm_pipe sbg
avs2 image_xwd_pipe scc
bethsoftvid ingenient sdp
bfi ipmovie sdr2
bfstm ircam sds
bink iss sdx
bintext iv8 segafilm
bit ivf ser
bmv ivr shorten
boa jacosub siff
brstm jv sln
c93 kux smacker
caf live_flv smjpeg
cavsvideo lmlm4 smush
cdg loas sol
cdxl lrc sox
cine lvf spdif
codec2 lxf srt
codec2raw m4v stl
concat matroska str
data mgsts subviewer
daud microdvd subviewer1
dcstr mjpeg sup
dfa mjpeg_2000 svag
dhav mlp swf
dirac mlv tak
dnxhd mm tedcaptions
dsf mmf thp
dsicin mov threedostr
dss mp3 tiertexseq
dts mpc tmv
dtshd mpc8 truehd
dv mpegps tta
dvbsub mpegts tty
dvbtxt mpegtsraw txd
dxa mpegvideo ty
ea mpjpeg v210
ea_cdata mpl2 v210x
eac3 mpsub vag
epaf msf vc1
ffmetadata msnwc_tcp vc1t
filmstrip mtaf vividas
fits mtv vivo
flac musx vmd
flic mv vobsub
flv mvi voc
fourxm mxf vpk
frm mxg vplayer
fsb nc vqf
g722 nistsphere w64
g723_1 nsp wav
g726 nsv wc3
g726le nut webm_dash_manifest
g729 nuv webvtt
gdv ogg wsaud
genh oma wsd
gif paf wsvqa
gsm pcm_alaw wtv
gxf pcm_f32be wv
h261 pcm_f32le wve
h263 pcm_f64be xa
h264 pcm_f64le xbin
hcom pcm_mulaw xmv
hevc pcm_s16be xvag
hls pcm_s16le xwma
hnm pcm_s24be yop
ico pcm_s24le yuv4mpegpipe
idcin pcm_s32be
idf pcm_s32le
Enabled muxers:
a64 hevc pcm_s24le
ac3 hls pcm_s32be
adts ico pcm_s32le
adx ilbc pcm_s8
aiff image2 pcm_u16be
amr image2pipe pcm_u16le
apng ipod pcm_u24be
aptx ircam pcm_u24le
aptx_hd ismv pcm_u32be
asf ivf pcm_u32le
asf_stream jacosub pcm_u8
ass latm pcm_vidc
ast lrc psp
au m4v rawvideo
avi matroska rm
avm2 matroska_audio roq
avs2 md5 rso
bit microdvd rtp
caf mjpeg rtp_mpegts
cavsvideo mkvtimestamp_v2 rtsp
codec2 mlp sap
codec2raw mmf sbc
crc mov scc
dash mp2 segafilm
data mp3 segment
daud mp4 singlejpeg
dirac mpeg1system smjpeg
dnxhd mpeg1vcd smoothstreaming
dts mpeg1video sox
dv mpeg2dvd spdif
eac3 mpeg2svcd spx
f4v mpeg2video srt
ffmetadata mpeg2vob stream_segment
fifo mpegts sup
fifo_test mpjpeg swf
filmstrip mxf tee
fits mxf_d10 tg2
flac mxf_opatom tgp
flv null truehd
framecrc nut tta
framehash oga uncodedframecrc
framemd5 ogg vc1
g722 ogv vc1t
g723_1 oma voc
g726 opus w64
g726le pcm_alaw wav
gif pcm_f32be webm
gsm pcm_f32le webm_chunk
gxf pcm_f64be webm_dash_manifest
h261 pcm_f64le webp
h263 pcm_mulaw webvtt
h264 pcm_s16be wtv
hash pcm_s16le wv
hds pcm_s24be yuv4mpegpipe
Enabled protocols:
async httpproxy rtmpte
cache https rtmpts
concat icecast rtp
crypto md5 srtp
data mmsh subfile
ffrtmpcrypt mmst tcp
ffrtmphttp pipe tee
file prompeg tls
ftp rtmp udp
gopher rtmpe udplite
hls rtmps unix
http rtmpt
Enabled filters:
abench datascope overlay
abitscope dcshift pad
acompressor dctdnoiz pal100bars
acontrast deband pal75bars
acopy deblock palettegen
acrossfade decimate paletteuse
acrossover deconvolve pan
acrusher dedot perms
acue deesser pixdesctest
addroi deflate pixscope
adeclick deflicker premultiply
adeclip dejudder prewitt
adelay derain pseudocolor
aderivative deshake psnr
adrawgraph despill qp
aecho detelecine random
aemphasis dilation readeia608
aeval displace readvitc
aevalsrc doubleweave realtime
afade drawbox remap
afftdn drawgraph removegrain
afftfilt drawgrid removelogo
afifo drmeter replaygain
afir dynaudnorm reverse
aformat earwax rgbashift
agate ebur128 rgbtestsrc
agraphmonitor edgedetect roberts
ahistogram elbg rotate
aiir entropy scale
aintegral equalizer scale2ref
ainterleave erosion select
alimiter extractplanes selectivecolor
allpass extrastereo sendcmd
allrgb fade separatefields
allyuv fftdnoiz setdar
aloop fftfilt setfield
alphaextract field setparams
alphamerge fieldhint setpts
amerge fieldmatch setrange
ametadata fieldorder setsar
amix fifo settb
amovie fillborders showcqt
amplify firequalizer showfreqs
amultiply flanger showinfo
anequalizer floodfill showpalette
anlmdn format showspatial
anoisesrc fps showspectrum
anull framepack showspectrumpic
anullsink framerate showvolume
anullsrc framestep showwaves
apad freezedetect showwavespic
aperms gblur shuffleframes
aphasemeter gradfun shuffleplanes
aphaser graphmonitor sidechaincompress
apulsator greyedge sidechaingate
arealtime haas sidedata
aresample haldclut signalstats
areverse haldclutsrc silencedetect
aselect hdcd silenceremove
asendcmd headphone sinc
asetnsamples hflip sine
asetpts highpass smptebars
asetrate highshelf smptehdbars
asettb hilbert sobel
ashowinfo histogram spectrumsynth
asidedata hqx split
asoftclip hstack sr
asplit hue ssim
astats hwdownload stereotools
astreamselect hwmap stereowiden
atadenoise hwupload streamselect
atempo hysteresis superequalizer
atrim idet surround
avectorscope il swaprect
avgblur inflate swapuv
bandpass interleave tblend
bandreject join telecine
bass lagfun testsrc
bbox lenscorrection testsrc2
bench life threshold
biquad limiter thumbnail
bitplanenoise loop tile
blackdetect loudnorm tlut2
blend lowpass tmix
bm3d lowshelf tonemap
bwdif lumakey tpad
cellauto lut transpose
channelmap lut1d treble
channelsplit lut2 tremolo
chorus lut3d trim
chromahold lutrgb unpremultiply
chromakey lutyuv unsharp
chromashift mandelbrot vectorscope
ciescope maskedclamp vflip
codecview maskedmerge vfrdet
color maskfun vibrance
colorbalance mcompand vibrato
colorchannelmixer mergeplanes vignette
colorhold mestimate vmafmotion
colorkey metadata volume
colorlevels midequalizer volumedetect
colorspace minterpolate vstack
compand mix w3fdif
compensationdelay movie waveform
concat negate weave
convolution nlmeans xbr
convolve noformat xmedian
copy noise xstack
crop normalize yadif
crossfeed null yuvtestsrc
crystalizer nullsink zoompan
cue nullsrc
curves oscilloscope
Enabled bsfs:
aac_adtstoasc h264_redundant_pps noise
av1_frame_split hapqa_extract null
av1_metadata hevc_metadata prores_metadata
chomp hevc_mp4toannexb remove_extradata
dca_core imx_dump_header text2movsub
dump_extradata mjpeg2jpeg trace_headers
eac3_core mjpega_dump_header truehd_core
extract_extradata mov2textsub vp9_metadata
filter_units mp3_header_decompress vp9_raw_reorder
h264_metadata mpeg2_metadata vp9_superframe
h264_mp4toannexb mpeg4_unpack_bframes vp9_superframe_split
Enabled indevs:
fbdev oss
lavfi v4l2
Enabled outdevs:
fbdev oss v4l2
License: LGPL version 2.1 or later
@skvark And here is the ffmpeg -L output, you asked for: [root@aaea5958fff2 ffmpeg]# ffmpeg -L
ffmpeg version N-94435-g9a2dbfd Copyright (c) 2000-2019 the FFmpeg developers
built with gcc 4.8.5 (GCC) 20150623 (Red Hat 4.8.5-36)
configuration: --prefix=/root/ffmpeg_build --extra-cflags=-I/root/ffmpeg_build/include --extra-ldflags=-L/root/ffmpeg_build/lib --enable-openssl --enable-libvpx --enable-shared --enable-pic --bindir=/root/bin
libavutil 56. 33.100 / 56. 33.100
libavcodec 58. 55.100 / 58. 55.100
libavformat 58. 30.100 / 58. 30.100
libavdevice 58. 9.100 / 58. 9.100
libavfilter 7. 58.100 / 7. 58.100
libswscale 5. 6.100 / 5. 6.100
libswresample 3. 6.100 / 3. 6.100
ffmpeg is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
ffmpeg is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with ffmpeg; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA |
Not |
@native-api Thanks I found some inconsistencies in dockers:
when we are building cmake from scratch?
Dependencies Resolved
============================================================================================================================================================================================================
Package Arch Version Repository Size
============================================================================================================================================================================================================
Installing:
curl-devel x86_64 7.15.5-17.el5_9 base 318 k
zlib-devel x86_64 1.2.3-7.el5 base 103 k
Installing for dependencies:
e2fsprogs-devel x86_64 1.39-37.el5 base 639 k
keyutils-libs-devel x86_64 1.2-1.el5 base 27 k
krb5-devel x86_64 1.6.1-80.el5_11 updates 1.9 M
libidn-devel x86_64 0.6.5-1.1 base 239 k
libselinux-devel x86_64 1.33.4-5.7.el5.centos libselinux 149 k
libsepol-devel x86_64 1.15.2-3.el5 base 192 k
openssl-devel x86_64 0.9.8e-40.el5_11 updates 1.9 M
Transaction Summary
============================================================================================================================================================================================================
Install 9 Package(s)
Upgrade 0 Package(s)
|
|
@native-api Also old system Perl v5.10.0 required--this is only v5.8.8, stopped at ./Configure line 12.
BEGIN failed--compilation aborted at ./Configure line 12. We need to build |
(Scratch my previous message about a ruling, found new evidence.) The toolchain cleanup should better be done in a different PR though. Let's only do what is relevant to the fresh OpenSSL here. |
docker/Dockerfile_i686
Outdated
curl -O -L https://github.com/openssl/openssl/archive/OpenSSL_1_1_1c.tar.gz && \ | ||
tar -zxvf OpenSSL_1_1_1c.tar.gz && \ | ||
cd openssl-OpenSSL_1_1_1c && \ | ||
./Configure --prefix="$HOME/ffmpeg_build" --openssldir="$HOME/ffmpeg_build" shared zlib && \ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
OpenSSL's INSTALL
doc says that config
is the script that should be run by the user.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
yes, that was a mistake, I changed it while testing.
@native-api but latest OpenSSL build requires at least |
Use the minimal configuration that works (openssl'd build docs seem to say which Perl modules are needed), we don't need this chain reaction to continue! Perl 5.10 is not a part of the toolchain, it's effectively a private dependency of openssl. You can as well delete it after building the library! So it is relevant. I was talking about other unrelated inconsistencies that you spotted. |
- Added perl build from scratch - Fixed wrong/redundant dependencies/paths - Fixed & updated openssl installation
Updates for docker images: - Added Perl build from scratch - Fixed wrong/redundant dependencies/paths - Fixed & updated OpenSSL installation - Fixed Empty continuation lines bug & added comments
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@native-api docker build is successful with these new changes. Kindly test and review these changes at your end. Thank you.
I also added git as a dependency as required by libvpx
download.
@skvark License is as follows with the recent build( [root@0122eceb268d ffmpeg]# ffmpeg -L
ffmpeg version N-94451-ga3adc3b Copyright (c) 2000-2019 the FFmpeg developers
built with gcc 4.8.2 (GCC) 20140120 (Red Hat 4.8.2-15)
configuration: --prefix=/root/ffmpeg_build --extra-cflags=-I/root/ffmpeg_build/include --extra-ldflags=-L/root/ffmpeg_build/lib --enable-openssl --enable-libvpx --enable-shared --enable-pic --bindir=/root/bin
libavutil 56. 33.100 / 56. 33.100
libavcodec 58. 55.100 / 58. 55.100
libavformat 58. 30.100 / 58. 30.100
libavdevice 58. 9.100 / 58. 9.100
libavfilter 7. 58.100 / 7. 58.100
libswscale 5. 6.100 / 5. 6.100
libswresample 3. 6.100 / 3. 6.100
ffmpeg is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
ffmpeg is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with ffmpeg; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
I give you carte blanche for including any general dockerfile cleanups into this PR if that makes your job easier. |
@native-api Why is your bash-3.2# cd openssl-OpenSSL_1_1_1c
bash-3.2# PERL="$HOME/ffmpeg_build/bin/perl" ./config --prefix="$HOME/ffmpeg_build" --openssldir="$HOME/ffmpeg_build" shared zlib
Operating system: i686-whatever-linux2
Configuring OpenSSL version 1.1.1c (0x1010103fL) for linux-x86
Using os-specific seed configuration
Creating configdata.pm
Creating Makefile
**********************************************************************
*** ***
*** OpenSSL has been successfully configured ***
*** ***
*** If you encounter a problem while building, please open an ***
*** issue on GitHub <https://github.com/openssl/openssl/issues> ***
*** and include the output from the following command: ***
*** ***
*** perl configdata.pm --dump ***
*** ***
*** (If you are new to OpenSSL, you might want to consult the ***
*** 'Troubleshooting' section in the INSTALL file first) ***
*** ***
**********************************************************************
Its clearly a problem at your end! Kindly recheck your docker build environment. |
@native-api and No need to remove git? It's working all fine here: bash-3.2# yum install git -y
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package git.i386 0:1.8.2.3-1.el5 set to be updated
--> Processing Dependency: perl-Git = 1.8.2.3-1.el5 for package: git
--> Processing Dependency: rsync for package: git
--> Processing Dependency: perl(Term::ReadKey) for package: git
--> Processing Dependency: perl(Git) for package: git
--> Processing Dependency: perl(Error) for package: git
--> Processing Dependency: openssh-clients for package: git
--> Running transaction check
---> Package openssh-clients.i386 0:4.3p2-82.el5 set to be updated
--> Processing Dependency: openssh = 4.3p2-82.el5 for package: openssh-clients
--> Processing Dependency: libfipscheck.so.1 for package: openssh-clients
---> Package perl-Error.noarch 1:0.17010-1.el5 set to be updated
---> Package perl-Git.i386 0:1.8.2.3-1.el5 set to be updated
---> Package perl-TermReadKey.i386 0:2.30-4.el5 set to be updated
---> Package rsync.i386 0:3.0.6-6.el5_11 set to be updated
--> Running transaction check
---> Package fipscheck-lib.i386 0:1.2.0-1.el5 set to be updated
--> Processing Dependency: /usr/bin/fipscheck for package: fipscheck-lib
---> Package openssh.i386 0:4.3p2-82.el5 set to be updated
--> Running transaction check
---> Package fipscheck.i386 0:1.2.0-1.el5 set to be updated
--> Finished Dependency Resolution
Dependencies Resolved
============================================================================================================================================================================================================
Package Arch Version Repository Size
============================================================================================================================================================================================================
Installing:
git i386 1.8.2.3-1.el5 epel 16 M
Installing for dependencies:
fipscheck i386 1.2.0-1.el5 base 13 k
fipscheck-lib i386 1.2.0-1.el5 base 6.7 k
openssh i386 4.3p2-82.el5 base 291 k
openssh-clients i386 4.3p2-82.el5 base 455 k
perl-Error noarch 1:0.17010-1.el5 epel 26 k
perl-Git i386 1.8.2.3-1.el5 epel 46 k
perl-TermReadKey i386 2.30-4.el5 epel 32 k
rsync i386 3.0.6-6.el5_11 updates 338 k
Transaction Summary
============================================================================================================================================================================================================
Install 9 Package(s)
Upgrade 0 Package(s)
Total download size: 17 M
Downloading Packages:
(1/9): fipscheck-lib-1.2.0-1.el5.i386.rpm | 6.7 kB 00:00
(2/9): fipscheck-1.2.0-1.el5.i386.rpm | 13 kB 00:00
(3/9): perl-Error-0.17010-1.el5.noarch.rpm | 26 kB 00:00
(4/9): perl-TermReadKey-2.30-4.el5.i386.rpm | 32 kB 00:00
(5/9): perl-Git-1.8.2.3-1.el5.i386.rpm | 46 kB 00:00
(6/9): openssh-4.3p2-82.el5.i386.rpm | 291 kB 00:01
(7/9): rsync-3.0.6-6.el5_11.i386.rpm | 338 kB 00:01
(8/9): openssh-clients-4.3p2-82.el5.i386.rpm | 455 kB 00:01
(9/9): git-1.8.2.3-1.el5.i386.rpm | 16 MB 00:45
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Total 317 kB/s | 17 MB 00:55
Running rpm_check_debug
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
Installing : perl-Error 1/9
Installing : perl-TermReadKey 2/9
Installing : rsync 3/9
Installing : fipscheck-lib 4/9
Installing : openssh 5/9
Installing : openssh-clients 6/9
Installing : fipscheck 7/9
Installing : git 8/9
Installing : perl-Git 9/9
Installed:
git.i386 0:1.8.2.3-1.el5
Dependency Installed:
fipscheck.i386 0:1.2.0-1.el5 fipscheck-lib.i386 0:1.2.0-1.el5 openssh.i386 0:4.3p2-82.el5 openssh-clients.i386 0:4.3p2-82.el5 perl-Error.noarch 1:0.17010-1.el5 perl-Git.i386 0:1.8.2.3-1.el5
perl-TermReadKey.i386 0:2.30-4.el5 rsync.i386 0:3.0.6-6.el5_11
Complete! |
Here's what I'm running (Ubuntu Bionic Desktop x64):
I think I know why the commands succeed for you: you are running them in the shell received from To get a shell in the intermediate environment after a specific command in Dockerfile is run, look at |
This actually suggests the reason. If this works for you in a "clean" |
@native-api I think we should wait for @skvark to test these two new dockerfiles with changes and revert the results. I'll make further improvements if it fails for him too as exact errors are not reproducible at my end. @skvark kindly post the error message if something fails for you. |
git install fails in i686, too
* rm it after library build
and the separate's onre buid fails dueto expired certificate at https://kent.dl.sourceforge.net
Fixes and Cleans up in dockerfiles and removed libjpeg-turbo by @native-api
@native-api Thanks for this changes. Can we finally test this issue example code too? Does this run ok at your end with final build? |
I'll have a look during the weekend. |
Rick Roll succeeded |
I built the images locally and everything went fine. I'll merge this and the other Docker changes before building and uploading the updated images to Quay. |
Thanks! |
* Added OpenSSL & different protocol support to FFmpeg backend - Fixed Docker dependencies (both x86 & x86-64) - Fixes bug #204 * Additional Fixes - updates to OpenSSL build from scratch - removed specific protocol - Added neccessary dependency * Fixed ./Configure command * Updates for docker images: - Added perl build from scratch - Fixed wrong/redundant dependencies/paths - Fixed & updated openssl installation * Fixed Empty continuation lines bug & added comments * fix inconsitent spacing * Don't add perl 5.10 to PATH * fix syntax error * Fixed OpenSSL build fails in i686 Dockerfile due to buggy perl source * Fixing manylinux docker entrypoint for i686 in 32 bit images * ENTRYPOINT not needed, it only affects "docker run" invocations * manylinux1 provides better libcurl for cmake * manylinux1 provides the toolchain and git git install fails in i686, too * cleanup tar invocations * nasm is not installed in manylinux1 * detect i686 in openssl configure * move perl to a separate subtree as it's a private dependency * rm it after library build * comment unusual openssl build step * avoid redundant work in perl build * build each library in a separate dockerfile command for easier debugging * comment custom i686 step * update dockerfile README * opencv now bundles libjpeg-turbo and the separate's onre buid fails dueto expired certificate at https://kent.dl.sourceforge.net
PR Description
This PR introduces Major Fixes and updates like OpenSSL for opencv-python's FFmpeg backend.
Fixes
#204
#193
Changes
libjpeg-turbo
libs build from scratch