selsta / hlsdl

C program to download VoD HLS (.m3u8) files
MIT License
636 stars 158 forks source link

how do i actually install this? #37

Closed jimsy3 closed 5 years ago

jimsy3 commented 6 years ago

hi

can someone help me install this? i downloaded the .zip file and extracted the files to a folder, but i dont really know how do i need to use the make commands with the files....

i tried 'sudo make makefile' and 'sudo make install' in that folder, but it only keeps giving errors that 'hlsdl: no such file or directory' etc...

i basically need it for the Sample-Aes decryptor...

thanks

jimsy3 commented 6 years ago

well, after the full make command it gave these errors...(i do have libavcodec56 installed..):

Package libcurl was not found in the pkg-config search path. Perhaps you should add the directory containing libcurl.pc' to the PKG_CONFIG_PATH environment variable No package 'libcurl' found Package libavformat was not found in the pkg-config search path. Perhaps you should add the directory containinglibavformat.pc' to the PKG_CONFIG_PATH environment variable No package 'libavformat' found Package libavutil was not found in the pkg-config search path. Perhaps you should add the directory containing libavutil.pc' to the PKG_CONFIG_PATH environment variable No package 'libavutil' found Package libavcodec was not found in the pkg-config search path. Perhaps you should add the directory containinglibavcodec.pc' to the PKG_CONFIG_PATH environment variable No package 'libavcodec' found cc -Wall -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wshadow -Wpointer-arith -Wcast-qual -Wsign-compare -Iincludes -g -DPREFIX='"/usr/local"' -D_GNU_SOURCE=1 -std=gnu99 -c src/main.c -o src/main.o src/main.c:1:34: fatal error: libavformat/avformat.h: No such file or directory

include <libavformat/avformat.h>

                              ^

compilation terminated. makefile:35: recipe for target 'src/main.o' failed make: *** [src/main.o] Error 1

jimsy3 commented 6 years ago

after installing libavformat-dev and libavcodec-dev i got these errors..(libavcodec56 was already installed):

Package libcurl was not found in the pkg-config search path. Perhaps you should add the directory containing libcurl.pc' to the PKG_CONFIG_PATH environment variable No package 'libcurl' found Package libavformat was not found in the pkg-config search path. Perhaps you should add the directory containinglibavformat.pc' to the PKG_CONFIG_PATH environment variable No package 'libavformat' found cc -Wall -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wshadow -Wpointer-arith -Wcast-qual -Wsign-compare -Iincludes -g -DPREFIX='"/usr/local"' -D_GNU_SOURCE=1 -std=gnu99 -c src/main.c -o src/main.o src/main.c:1:34: fatal error: libavformat/avformat.h: No such file or directory

include <libavformat/avformat.h>

                              ^

compilation terminated. makefile:35: recipe for target 'src/main.o' failed make: *** [src/main.o] Error 1

jimsy3 commented 6 years ago

after running the "sudo apt-get install libcurl4-openssl-dev" command, i am left with this error: (altho i do have libavformat-dev installed too now)

Package libavformat was not found in the pkg-config search path. Perhaps you should add the directory containing `libavformat.pc' to the PKG_CONFIG_PATH environment variable No package 'libavformat' found cc -Wall -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wshadow -Wpointer-arith -Wcast-qual -Wsign-compare -Iincludes -g -DPREFIX='"/usr/local"' -D_GNU_SOURCE=1 -std=gnu99 -c src/main.c -o src/main.o src/main.c:1:34: fatal error: libavformat/avformat.h: No such file or directory

include <libavformat/avformat.h>

                              ^

compilation terminated. makefile:35: recipe for target 'src/main.o' failed make: *** [src/main.o] Error 1

jimsy3 commented 6 years ago

now i get these (make install) errors after i ran the libavformat-dev install command again...:

cc -Wall -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wshadow -Wpointer-arith -Wcast-qual -Wsign-compare -Iincludes -g -DPREFIX='"/usr/local"' -D_GNU_SOURCE=1 -std=gnu99 -c src/hls.c -o src/hls.o src/hls.c: In function 'get_info_for_sample_aes': src/hls.c:331:9: error: unknown type name 'AVCodecParameters' AVCodecParameters in_c = ifmt_ctx->streams[i]->codecpar; ^ src/hls.c:331:55: error: 'AVStream' has no member named 'codecpar' AVCodecParameters in_c = ifmt_ctx->streams[i]->codecpar; ^ src/hls.c:332:17: error: request for member 'codec_type' in something not a structure or union if (in_c->codec_type == AVMEDIA_TYPE_AUDIO) { ^ src/hls.c:334:24: error: request for member 'codec_id' in something not a structure or union } else if (in_c->codec_id == AV_CODEC_ID_H264) { ^ src/hls.c: In function 'decrypt_sample_aes': src/hls.c:404:9: error: unknown type name 'AVCodecParameters' AVCodecParameters in_c = ifmt_ctx->streams[i]->codecpar; ^ src/hls.c:404:55: error: 'AVStream' has no member named 'codecpar' AVCodecParameters in_c = ifmt_ctx->streams[i]->codecpar; ^ src/hls.c:405:17: error: request for member 'codec_type' in something not a structure or union if (in_c->codec_type == AVMEDIA_TYPE_AUDIO) { ^ src/hls.c:406:17: error: request for member 'sample_rate' in something not a structure or union in_c->sample_rate = audio_sample_rate; ^ src/hls.c:407:17: error: request for member 'frame_size' in something not a structure or union in_c->frame_size = audio_frame_size; ^ src/hls.c:409:13: warning: implicit declaration of function 'avcodec_parameters_copy' [-Wimplicit-function-declaration] avcodec_parameters_copy(ofmt_ctx->streams[i]->codecpar, in_c); ^ src/hls.c:409:57: error: 'AVStream' has no member named 'codecpar' avcodec_parameters_copy(ofmt_ctx->streams[i]->codecpar, in_c); ^ src/hls.c:411:24: error: request for member 'codec_id' in something not a structure or union } else if (in_c->codec_id == AV_CODEC_ID_H264) { ^ src/hls.c:413:57: error: 'AVStream' has no member named 'codecpar' avcodec_parameters_copy(ofmt_ctx->streams[i]->codecpar, in_c); ^ src/hls.c:440:45: error: 'AVStream' has no member named 'codecpar' ifmt_ctx->streams[audio_idx]->codecpar->codec_id; ^ makefile:35: recipe for target 'src/hls.o' failed make: *** [src/hls.o] Error 1

selsta commented 6 years ago

Hi, make sure that the sample-aes file you have has no DRM first.

Regarding the last error, what version of libavformat-dev did you install?

jimsy3 commented 6 years ago

after i tried to do this, i got this...:

sudo apt-get install libavcodec-extra-56 Reading package lists... Done Building dependency tree
Reading state information... Done The following packages were automatically installed and are no longer required: liba52-0.7.4-dev libavutil-dev libdc1394-22-dev libdirac-decoder0 libdirac-dev libfaac-dev libfaad-dev libgsm1-dev libmp3lame-dev libogg-dev libopencore-amrnb-dev libopencore-amrwb-dev liborc-0.4-dev libpostproc53 libraw1394-dev libschroedinger-dev libswresample-dev libswscale3 libtheora-dev libvdpau1 libvidstab1.0 libvorbis-dev libx264-dev libxvidcore-dev qml-module-qtgraphicaleffects Use 'apt-get autoremove' to remove them. The following packages will be REMOVED: ffmpeg gimp libavcodec-dev libavcodec56 libavdevice56 libavfilter5 libavformat-dev libavformat56 libgegl-0.2-0 The following NEW packages will be installed: libavcodec-extra-56 0 upgraded, 1 newly installed, 9 to remove and 388 not upgraded. Need to get 5924 kB of archives. After this operation, 50.5 MB disk space will be freed.

jimsy3 commented 6 years ago

dont know what file does not need to have the dmr... (i got that long error after issuing the make install/clean command...)

and the libavformat-dev version seems to be "10:2.6.9-dmo1" (i just used the "apt-get install libavformat-dev" command, so i dont know if that downloaded the correct version or not..)

(and for ffmpeg i also used the regular "sudo apt-get install ffmpeg" command...)

jimsy3 commented 6 years ago

would it work on ubuntu 12.04 at all? i tried to test it on this now, but it says that libavcodec53 and format53 are already installed and cant find the package codec/format56... (and it still gives error for "no package libavcodec/libavformat found"

so should i upgrade the system to 14.04 first and then try to install 56 codec? i was just trying the 12.04 version now to test if it works on older ubuntu...

jimsy3 commented 6 years ago

well, i probably had to isntall libavformat-dev and libavutil-dev, but then it gave this make error (12.04): (so which linux system does it even work on?:s (i tried lmde2 as the first one)...)

cc -Wall -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wshadow -Wpointer-arith -Wcast-qual -Wsign-compare -Iincludes -g -DPREFIX='"/usr/local"' -D_GNU_SOURCE=1 -std=gnu99 -c src/hls.c -o src/hls.o src/hls.c: In function ‘get_info_for_sample_aes’: src/hls.c:331:9: error: unknown type name ‘AVCodecParameters’ src/hls.c:331:55: error: ‘AVStream’ has no member named ‘codecpar’ src/hls.c:332:17: error: request for member ‘codec_type’ in something not a structure or union src/hls.c:334:24: error: request for member ‘codec_id’ in something not a structure or union src/hls.c:334:38: error: ‘AV_CODEC_ID_H264’ undeclared (first use in this function) src/hls.c:334:38: note: each undeclared identifier is reported only once for each function it appears in src/hls.c:355:9: warning: implicit declaration of function ‘av_packet_unref’ [-Wimplicit-function-declaration] src/hls.c: In function ‘decrypt_sample_aes’: src/hls.c:404:9: error: unknown type name ‘AVCodecParameters’ src/hls.c:404:55: error: ‘AVStream’ has no member named ‘codecpar’ src/hls.c:405:17: error: request for member ‘codec_type’ in something not a structure or union src/hls.c:406:17: error: request for member ‘sample_rate’ in something not a structure or union src/hls.c:407:17: error: request for member ‘frame_size’ in something not a structure or union src/hls.c:409:13: warning: implicit declaration of function ‘avcodec_parameters_copy’ [-Wimplicit-function-declaration] src/hls.c:409:57: error: ‘AVStream’ has no member named ‘codecpar’ src/hls.c:411:24: error: request for member ‘codec_id’ in something not a structure or union src/hls.c:411:38: error: ‘AV_CODEC_ID_H264’ undeclared (first use in this function) src/hls.c:413:57: error: ‘AVStream’ has no member named ‘codecpar’ src/hls.c:439:18: error: variable ‘cid’ has initializer but incomplete type src/hls.c:440:45: error: ‘AVStream’ has no member named ‘codecpar’ src/hls.c:439:28: error: storage size of ‘cid’ isn’t known src/hls.c:441:24: error: ‘AV_CODEC_ID_AAC’ undeclared (first use in this function) src/hls.c:447:31: error: ‘AV_CODEC_ID_AC3’ undeclared (first use in this function) src/hls.c:439:28: warning: unused variable ‘cid’ [-Wunused-variable] make: *** [src/hls.o] Error 1

jimsy3 commented 6 years ago

so now i tried to install these(on ubuntu 16.04): libav-tools libcurl4-openssl-dev libavformat-dev

and got this error after the full make command....: cc -Wall -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wshadow -Wpointer-arith -Wcast-qual -Wsign-compare -Iincludes -g -DPREFIX='"/usr/local"' -I/usr/include/i386-linux-gnu -D_GNU_SOURCE=1 -std=gnu99 -c src/main.c -o src/main.o cc -Wall -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wshadow -Wpointer-arith -Wcast-qual -Wsign-compare -Iincludes -g -DPREFIX='"/usr/local"' -I/usr/include/i386-linux-gnu -D_GNU_SOURCE=1 -std=gnu99 -c src/aes.c -o src/aes.o src/aes.c: In function ‘AES128_CBC_encrypt_buffer’: src/aes.c:492:10: warning: cast discards ‘const’ qualifier from pointer target type [-Wcast-qual] Iv = (uint8_t)iv; ^ src/aes.c:495:16: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] for(i = 0; i < length; i += KEYLEN) ^ src/aes.c: In function ‘AES128_CBC_decrypt_buffer’: src/aes.c:533:10: warning: cast discards ‘const’ qualifier from pointer target type [-Wcast-qual] Iv = (uint8_t)iv; ^ src/aes.c:536:16: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] for(i = 0; i < length; i += KEYLEN) ^ cc -Wall -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wshadow -Wpointer-arith -Wcast-qual -Wsign-compare -Iincludes -g -DPREFIX='"/usr/local"' -I/usr/include/i386-linux-gnu -D_GNU_SOURCE=1 -std=gnu99 -c src/curl.c -o src/curl.o cc -Wall -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wshadow -Wpointer-arith -Wcast-qual -Wsign-compare -Iincludes -g -DPREFIX='"/usr/local"' -I/usr/include/i386-linux-gnu -D_GNU_SOURCE=1 -std=gnu99 -c src/hls.c -o src/hls.o src/hls.c: In function ‘get_info_for_sample_aes’: src/hls.c:331:9: error: unknown type name ‘AVCodecParameters’ AVCodecParameters in_c = ifmt_ctx->streams[i]->codecpar; ^ src/hls.c:331:55: error: ‘AVStream {aka struct AVStream}’ has no member named ‘codecpar’ AVCodecParameters in_c = ifmt_ctx->streams[i]->codecpar; ^ src/hls.c:332:17: error: request for member ‘codec_type’ in something not a structure or union if (in_c->codec_type == AVMEDIA_TYPE_AUDIO) { ^ src/hls.c:334:24: error: request for member ‘codec_id’ in something not a structure or union } else if (in_c->codec_id == AV_CODEC_ID_H264) { ^ src/hls.c: In function ‘decrypt_sample_aes’: src/hls.c:404:9: error: unknown type name ‘AVCodecParameters’ AVCodecParameters in_c = ifmt_ctx->streams[i]->codecpar; ^ src/hls.c:404:55: error: ‘AVStream {aka struct AVStream}’ has no member named ‘codecpar’ AVCodecParameters in_c = ifmt_ctx->streams[i]->codecpar; ^ src/hls.c:405:17: error: request for member ‘codec_type’ in something not a structure or union if (in_c->codec_type == AVMEDIA_TYPE_AUDIO) { ^ src/hls.c:406:17: error: request for member ‘sample_rate’ in something not a structure or union in_c->sample_rate = audio_sample_rate; ^ src/hls.c:407:17: error: request for member ‘frame_size’ in something not a structure or union in_c->frame_size = audio_frame_size; ^ src/hls.c:409:13: warning: implicit declaration of function ‘avcodec_parameters_copy’ [-Wimplicit-function-declaration] avcodec_parameters_copy(ofmt_ctx->streams[i]->codecpar, in_c); ^ src/hls.c:409:57: error: ‘AVStream {aka struct AVStream}’ has no member named ‘codecpar’ avcodec_parameters_copy(ofmt_ctx->streams[i]->codecpar, in_c); ^ src/hls.c:411:24: error: request for member ‘codec_id’ in something not a structure or union } else if (in_c->codec_id == AV_CODEC_ID_H264) { ^ src/hls.c:413:57: error: ‘AVStream {aka struct AVStream}’ has no member named ‘codecpar’ avcodec_parameters_copy(ofmt_ctx->streams[i]->codecpar, in_c); ^ src/hls.c:440:45: error: ‘AVStream {aka struct AVStream}’ has no member named ‘codecpar’ ifmt_ctx->streams[audio_idx]->codecpar->codec_id; ^ makefile:35: recipe for target 'src/hls.o' failed make: *** [src/hls.o] Error 1

so how can get it working and with which system?:s

selsta commented 5 years ago

ffmpeg dependency got removed now, compiling should be easier. If you still have problems, please open a new issue.