(met toestemming van Psychoclown om dit topic hier te openen)
Ik probeer al een tijdje X264 te compilen voor mijn Synology DS412+ NAS, maar ik krijg het niet voor elkaar. De NAS heeft een Intel Atom CPU en draait op een Linux afgeleide (weet niet welke).
X264 is te installeren via IPKG, maar dan krijg je een oude versie. Deze versie is te oud om vervolgens Ffmpeg te compilen.
Wat ik doe:
Dit gaat goed en ik krijg dan de volgende melding:
DiskStation> make
Het bovenstaande geeft een foutmelding. Vervolgens:
Natuurlijk geeft dit ook een foutmelding:
:
Wat doe ik fout? Wie kan we helpen? Ik ben een Linux-noob, dus graag met duidelijke stappen. Er zijn meer gebruikers van Synology die dit probleem hebben, zie bv
http://forum.synology.com/enu/viewtopic.php?f=37&t=66553. De optie
Lost het probleem niet op.
Volgende vraag: ik kan FFmpeg compilen. Maar ik weet niet zeker of ik het juist doe:
Ik probeer al een tijdje X264 te compilen voor mijn Synology DS412+ NAS, maar ik krijg het niet voor elkaar. De NAS heeft een Intel Atom CPU en draait op een Linux afgeleide (weet niet welke).
X264 is te installeren via IPKG, maar dan krijg je een oude versie. Deze versie is te oud om vervolgens Ffmpeg te compilen.
Wat ik doe:
code:
1
2
3
| git clone git://git.videolan.org/x264.git /tmp/x264 cd /tmp/x264 ./configure --enable-shared --host=i686-linux --disable-asm |
Dit gaat goed en ik krijg dan de volgende melding:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
| platform: X86 system: LINUX cli: yes libx264: internal shared: yes static: no asm: no interlaced: yes avs: avxsynth lavf: no ffms: no gpac: no gpl: yes thread: posix opencl: yes filters: crop select_every debug: no gprof: no strip: no PIC: no visualize: no bit depth: 8 chroma format: all You can run 'make' or 'make fprofiled' now. |
DiskStation> make
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
| gcc -Wshadow -O3 -ffast-math -m32 -Wall -I. -I. -std=gnu99 -fomit-frame-pointer -fno-tree-vectorize -c -o x264.o x264.c x264.c: In function 'parse_qpfile': x264.c:1652: warning: implicit declaration of function 'ftello' x264.c:1659: warning: implicit declaration of function 'fseeko' gcc -Wshadow -O3 -ffast-math -m32 -Wall -I. -I. -std=gnu99 -fomit-frame-pointer -fno-tree-vectorize -c -o input/input.o input/input.c gcc -Wshadow -O3 -ffast-math -m32 -Wall -I. -I. -std=gnu99 -fomit-frame-pointer -fno-tree-vectorize -c -o input/timecode.o input/timecode.c gcc -Wshadow -O3 -ffast-math -m32 -Wall -I. -I. -std=gnu99 -fomit-frame-pointer -fno-tree-vectorize -c -o input/raw.o input/raw.c gcc -Wshadow -O3 -ffast-math -m32 -Wall -I. -I. -std=gnu99 -fomit-frame-pointer -fno-tree-vectorize -c -o input/y4m.o input/y4m.c gcc -Wshadow -O3 -ffast-math -m32 -Wall -I. -I. -std=gnu99 -fomit-frame-pointer -fno-tree-vectorize -c -o output/raw.o output/raw.c gcc -Wshadow -O3 -ffast-math -m32 -Wall -I. -I. -std=gnu99 -fomit-frame-pointer -fno-tree-vectorize -c -o output/matroska.o output/matroska.c gcc -Wshadow -O3 -ffast-math -m32 -Wall -I. -I. -std=gnu99 -fomit-frame-pointer -fno-tree-vectorize -c -o output/matroska_ebml.o output/matroska_ebml.c gcc -Wshadow -O3 -ffast-math -m32 -Wall -I. -I. -std=gnu99 -fomit-frame-pointer -fno-tree-vectorize -c -o output/flv.o output/flv.c gcc -Wshadow -O3 -ffast-math -m32 -Wall -I. -I. -std=gnu99 -fomit-frame-pointer -fno-tree-vectorize -c -o output/flv_bytestream.o output/flv_bytestream.c gcc -Wshadow -O3 -ffast-math -m32 -Wall -I. -I. -std=gnu99 -fomit-frame-pointer -fno-tree-vectorize -c -o filters/filters.o filters/filters.c gcc -Wshadow -O3 -ffast-math -m32 -Wall -I. -I. -std=gnu99 -fomit-frame-pointer -fno-tree-vectorize -c -o filters/video/video.o filters/video/video.c gcc -Wshadow -O3 -ffast-math -m32 -Wall -I. -I. -std=gnu99 -fomit-frame-pointer -fno-tree-vectorize -c -o filters/video/source.o filters/video/source.c gcc -Wshadow -O3 -ffast-math -m32 -Wall -I. -I. -std=gnu99 -fomit-frame-pointer -fno-tree-vectorize -c -o filters/video/internal.o filters/video/internal.c gcc -Wshadow -O3 -ffast-math -m32 -Wall -I. -I. -std=gnu99 -fomit-frame-pointer -fno-tree-vectorize -c -o filters/video/resize.o filters/video/resize.c gcc -Wshadow -O3 -ffast-math -m32 -Wall -I. -I. -std=gnu99 -fomit-frame-pointer -fno-tree-vectorize -c -o filters/video/cache.o filters/video/cache.c gcc -Wshadow -O3 -ffast-math -m32 -Wall -I. -I. -std=gnu99 -fomit-frame-pointer -fno-tree-vectorize -c -o filters/video/fix_vfr_pts.o filters/video/fix_vfr_pts.c gcc -Wshadow -O3 -ffast-math -m32 -Wall -I. -I. -std=gnu99 -fomit-frame-pointer -fno-tree-vectorize -c -o filters/video/select_every.o filters/video/select_every.c gcc -Wshadow -O3 -ffast-math -m32 -Wall -I. -I. -std=gnu99 -fomit-frame-pointer -fno-tree-vectorize -c -o filters/video/crop.o filters/video/crop.c gcc -Wshadow -O3 -ffast-math -m32 -Wall -I. -I. -std=gnu99 -fomit-frame-pointer -fno-tree-vectorize -c -o filters/video/depth.o filters/video/depth.c gcc -Wshadow -O3 -ffast-math -m32 -Wall -I. -I. -std=gnu99 -fomit-frame-pointer -fno-tree-vectorize -c -o input/avs.o input/avs.c In file included from input/avs.c:47: ./extras/avxsynth_c.h: In function 'avs_array_elt': ./extras/avxsynth_c.h:509: warning: declaration of 'index' shadows a global declaration /opt/include/string.h:304: warning: shadowed declaration is here gcc -Wshadow -O3 -ffast-math -m32 -Wall -I. -I. -std=gnu99 -fomit-frame-pointer -fno-tree-vectorize -c -o input/thread.o input/thread.c gcc -Wshadow -O3 -ffast-math -m32 -Wall -I. -I. -std=gnu99 -fomit-frame-pointer -fno-tree-vectorize -c -o common/mc.o common/mc.c gcc -Wshadow -O3 -ffast-math -m32 -Wall -I. -I. -std=gnu99 -fomit-frame-pointer -fno-tree-vectorize -c -o common/predict.o common/predict.c gcc -Wshadow -O3 -ffast-math -m32 -Wall -I. -I. -std=gnu99 -fomit-frame-pointer -fno-tree-vectorize -c -o common/pixel.o common/pixel.c gcc -Wshadow -O3 -ffast-math -m32 -Wall -I. -I. -std=gnu99 -fomit-frame-pointer -fno-tree-vectorize -c -o common/macroblock.o common/macroblock.c gcc -Wshadow -O3 -ffast-math -m32 -Wall -I. -I. -std=gnu99 -fomit-frame-pointer -fno-tree-vectorize -c -o common/frame.o common/frame.c gcc -Wshadow -O3 -ffast-math -m32 -Wall -I. -I. -std=gnu99 -fomit-frame-pointer -fno-tree-vectorize -c -o common/dct.o common/dct.c gcc -Wshadow -O3 -ffast-math -m32 -Wall -I. -I. -std=gnu99 -fomit-frame-pointer -fno-tree-vectorize -c -o common/cpu.o common/cpu.c gcc -Wshadow -O3 -ffast-math -m32 -Wall -I. -I. -std=gnu99 -fomit-frame-pointer -fno-tree-vectorize -c -o common/cabac.o common/cabac.c gcc -Wshadow -O3 -ffast-math -m32 -Wall -I. -I. -std=gnu99 -fomit-frame-pointer -fno-tree-vectorize -c -o common/common.o common/common.c gcc -Wshadow -O3 -ffast-math -m32 -Wall -I. -I. -std=gnu99 -fomit-frame-pointer -fno-tree-vectorize -c -o common/osdep.o common/osdep.c gcc -Wshadow -O3 -ffast-math -m32 -Wall -I. -I. -std=gnu99 -fomit-frame-pointer -fno-tree-vectorize -c -o common/rectangle.o common/rectangle.c gcc -Wshadow -O3 -ffast-math -m32 -Wall -I. -I. -std=gnu99 -fomit-frame-pointer -fno-tree-vectorize -c -o common/set.o common/set.c gcc -Wshadow -O3 -ffast-math -m32 -Wall -I. -I. -std=gnu99 -fomit-frame-pointer -fno-tree-vectorize -c -o common/quant.o common/quant.c gcc -Wshadow -O3 -ffast-math -m32 -Wall -I. -I. -std=gnu99 -fomit-frame-pointer -fno-tree-vectorize -c -o common/deblock.o common/deblock.c gcc -Wshadow -O3 -ffast-math -m32 -Wall -I. -I. -std=gnu99 -fomit-frame-pointer -fno-tree-vectorize -c -o common/vlc.o common/vlc.c gcc -Wshadow -O3 -ffast-math -m32 -Wall -I. -I. -std=gnu99 -fomit-frame-pointer -fno-tree-vectorize -c -o common/mvpred.o common/mvpred.c gcc -Wshadow -O3 -ffast-math -m32 -Wall -I. -I. -std=gnu99 -fomit-frame-pointer -fno-tree-vectorize -c -o common/bitstream.o common/bitstream.c gcc -Wshadow -O3 -ffast-math -m32 -Wall -I. -I. -std=gnu99 -fomit-frame-pointer -fno-tree-vectorize -c -o encoder/analyse.o encoder/analyse.c gcc -Wshadow -O3 -ffast-math -m32 -Wall -I. -I. -std=gnu99 -fomit-frame-pointer -fno-tree-vectorize -c -o encoder/me.o encoder/me.c gcc -Wshadow -O3 -ffast-math -m32 -Wall -I. -I. -std=gnu99 -fomit-frame-pointer -fno-tree-vectorize -c -o encoder/ratecontrol.o encoder/ratecontrol.c gcc -Wshadow -O3 -ffast-math -m32 -Wall -I. -I. -std=gnu99 -fomit-frame-pointer -fno-tree-vectorize -c -o encoder/set.o encoder/set.c gcc -Wshadow -O3 -ffast-math -m32 -Wall -I. -I. -std=gnu99 -fomit-frame-pointer -fno-tree-vectorize -c -o encoder/macroblock.o encoder/macroblock.c gcc -Wshadow -O3 -ffast-math -m32 -Wall -I. -I. -std=gnu99 -fomit-frame-pointer -fno-tree-vectorize -c -o encoder/cabac.o encoder/cabac.c gcc -Wshadow -O3 -ffast-math -m32 -Wall -I. -I. -std=gnu99 -fomit-frame-pointer -fno-tree-vectorize -c -o encoder/cavlc.o encoder/cavlc.c gcc -Wshadow -O3 -ffast-math -m32 -Wall -I. -I. -std=gnu99 -fomit-frame-pointer -fno-tree-vectorize -c -o encoder/encoder.o encoder/encoder.c gcc -Wshadow -O3 -ffast-math -m32 -Wall -I. -I. -std=gnu99 -fomit-frame-pointer -fno-tree-vectorize -c -o encoder/lookahead.o encoder/lookahead.c gcc -Wshadow -O3 -ffast-math -m32 -Wall -I. -I. -std=gnu99 -fomit-frame-pointer -fno-tree-vectorize -c -o common/threadpool.o common/threadpool.c gcc -Wshadow -O3 -ffast-math -m32 -Wall -I. -I. -std=gnu99 -fomit-frame-pointer -fno-tree-vectorize -c -o common/opencl.o common/opencl.c gcc -Wshadow -O3 -ffast-math -m32 -Wall -I. -I. -std=gnu99 -fomit-frame-pointer -fno-tree-vectorize -c -o encoder/slicetype-cl.o encoder/slicetype-cl.c rm -f libx264.a ar rc libx264.a common/mc.o common/predict.o common/pixel.o common/macroblock.o common/frame.o common/dct.o common/cpu.o common/cabac.o common/common.o common/osdep.o common/rectangle.o common/set.o common/quant.o common/deblock.o common/vlc.o common/mvpred.o common/bitstream.o encoder/analyse.o encoder/me.o encoder/ratecontrol.o encoder/set.o encoder/macroblock.o encoder/cabac.o encoder/cavlc.o encoder/encoder.o encoder/lookahead.o common/threadpool.o common/opencl.o encoder/slicetype-cl.o ranlib libx264.a gcc -o x264 x264.o input/input.o input/timecode.o input/raw.o input/y4m.o output/raw.o output/matroska.o output/matroska_ebml.o output/flv.o output/flv_bytestream.o filters/filters.o filters/video/video.o filters/video/source.o filters/video/internal.o filters/video/resize.o filters/video/cache.o filters/video/fix_vfr_pts.o filters/video/select_every.o filters/video/crop.o filters/video/depth.o input/avs.o input/thread.o libx264.a -ldl -m32 -lm -lpthread -ldl libx264.a(frame.o): In function `x264_frame_new_slice': frame.c:(.text+0x5c2): undefined reference to `__sync_fetch_and_add_4' collect2: ld returned 1 exit status make: *** [x264] Error 1 |
Het bovenstaande geeft een foutmelding. Vervolgens:
code:
1
| Make install |
Natuurlijk geeft dit ook een foutmelding:
code:
1
2
3
4
5
| gcc -o x264 x264.o input/input.o input/timecode.o input/raw.o input/y4m.o output/raw.o output/matroska.o output/matroska_ebml.o output/flv.o output/flv_bytestream.o filters/filters.o filters/video/video.o filters/video/source.o filters/video/internal.o filters/video/resize.o filters/video/cache.o filters/video/fix_vfr_pts.o filters/video/select_every.o filters/video/crop.o filters/video/depth.o input/avs.o input/thread.o libx264.a -ldl -m32 -lm -lpthread -ldl libx264.a(frame.o): In function `x264_frame_new_slice': frame.c:(.text+0x5c2): undefined reference to `__sync_fetch_and_add_4' collect2: ld returned 1 exit status make: *** [x264] Error 1 |
:
Wat doe ik fout? Wie kan we helpen? Ik ben een Linux-noob, dus graag met duidelijke stappen. Er zijn meer gebruikers van Synology die dit probleem hebben, zie bv
http://forum.synology.com/enu/viewtopic.php?f=37&t=66553. De optie
code:
1
| sh ./configure --enable-shared --host=i686-linux --disable-asm |
Lost het probleem niet op.
Volgende vraag: ik kan FFmpeg compilen. Maar ik weet niet zeker of ik het juist doe:
code:
1
| ./configure --enable-cross-compile --arch=i686 --target-os=linux --enable-optimizations --disable-yasm --disable-altivec --enable-pic --enable-shared --disable-static --disable-swscale-alpha --disable-ffserver --disable-ffplay --enable-libfaac --enable-nonfree --enable-version3 --enable-gpl --enable-libx264 |