라즈베리파이3B ffmpeg 하드웨어 가속..
일단.. 혹시 깔려 있을지 모르는 ffmpeg 를 제거 하자
sudo apt remove ffmpeg
git 설치
sudo apt install git build-essential
h264 라이브러리 설치
git clone git://git.videolan.org/x264
cd x264
./configure --host=arm-unknown-linux-gnueabi --enable-static --disable-opencl
make -j4
sudo make install
ffmpeg 설치
sudo git clone https://github.com/FFmpeg/FFmpeg.git
cd FFmpeg
./configure --arch=armel --target-os=linux --enable-gpl --enable-omx --enable-omx-rpi --enable-nonfree --enable-mmal
make -j4
sudo make install
시간이 엄청나게 걸린다..
그리고 cpu 온도 80도 넘어가니 주의 할것 ㅎㅎ
이제 라즈베리파이에서 h264_mmal / h264_omx 사용가능
그러면 teheadend 에서 트랜스코딩 가능
프로파일에 있는 트렌스코딩이 아니라 우선 코딩해서 넘기는 방식
사용법은
vim transcoding.sh
#!/bin/sh
ffmpeg -c:v h264_mmal -i $1 -c:v h264_omx -preset ultrafast -f mpegts pipe:1
파일하나 만들고
m3u파일에
pipe:///home/pi/transcoding.sh rtp://xxx.xxx.xxx.xxx:5000
이런식으로 사용
라즈베리파이로도 tvheadend 트랜스 코딩이 가능!
동시 시청 2~3대 까지는 가능하다.
^^v
-- 추가 --
약간 쾌적하게 트랜스코딩 하는 방법 추가 했습니다.
https://nbspcrop.blogspot.com/2019/04/blog-post.html
일단.. 혹시 깔려 있을지 모르는 ffmpeg 를 제거 하자
sudo apt remove ffmpeg
git 설치
sudo apt install git build-essential
h264 라이브러리 설치
git clone git://git.videolan.org/x264
cd x264
./configure --host=arm-unknown-linux-gnueabi --enable-static --disable-opencl
make -j4
sudo make install
ffmpeg 설치
sudo git clone https://github.com/FFmpeg/FFmpeg.git
cd FFmpeg
./configure --arch=armel --target-os=linux --enable-gpl --enable-omx --enable-omx-rpi --enable-nonfree --enable-mmal
make -j4
sudo make install
시간이 엄청나게 걸린다..
그리고 cpu 온도 80도 넘어가니 주의 할것 ㅎㅎ
이제 라즈베리파이에서 h264_mmal / h264_omx 사용가능
그러면 teheadend 에서 트랜스코딩 가능
프로파일에 있는 트렌스코딩이 아니라 우선 코딩해서 넘기는 방식
사용법은
vim transcoding.sh
#!/bin/sh
ffmpeg -c:v h264_mmal -i $1 -c:v h264_omx -preset ultrafast -f mpegts pipe:1
파일하나 만들고
m3u파일에
pipe:///home/pi/transcoding.sh rtp://xxx.xxx.xxx.xxx:5000
이런식으로 사용
라즈베리파이로도 tvheadend 트랜스 코딩이 가능!
동시 시청 2~3대 까지는 가능하다.
^^v
-- 추가 --
약간 쾌적하게 트랜스코딩 하는 방법 추가 했습니다.
https://nbspcrop.blogspot.com/2019/04/blog-post.html
혹시 rtp가 아니고 udp면 사용이 안되는건가요? 알려주신대로 셋팅을 다 했는데
답글삭제mux idle에서 모두 fail이 뜨네요...
제 생각엔 가능할 것 같은데요.. fail이 뜨신다니.. 이상하네요..
답글삭제ffmpeg 설치할 때
삭제./configure --arch=armel --target-os=linux --enable-gpl --enable-omx --enable-omx-rpi --enable-nonfree --enable-mmal
에서
./configure: 4063: ./configure: cannot create ffbuild/config.log: Permission denied
./configure: 4064: ./configure: cannot create ffbuild/config.log: Permission denied
오류가 나서 root권한으로 그 이후로 계속해서 설치했구요.
알려주신 방법대로하면 끝까지하면
spawn: /home/pi/transcoding.sh: 2: /home/pi/transcoding.sh: ffmpeg: not found
이렇게 tvheadend에서 오류가 뜹니다.
ffmpeg 설치시 문제가 생긴걸까요...
root 권한으로 그러니까 su 하시고 하신건가요? sudo 하신건가요? 경로가 /home/ 인데 su 하셨으면 /root/ 경로로 잡힌게 아닐까 싶은데요..
답글삭제ffmpeg가 설치가 안되었거나 경로상의 문제인듯 합니다.
https://askubuntu.com/questions/699502/ffmpeg-command-not-found
참고해보세요.
sudo를 하였지만
답글삭제/root/ 경로에는 따로 ffmpeg가 없습니다.
pi@서버 상태에서는 ./transcoding.sh 를 하면
ffmpeg version N-93397-gf8075b2c91 Copyright (c) 2000-2019 the FFmpeg developers
built with gcc 6.3.0 (Raspbian 6.3.0-18+rpi1+deb9u1) 20170516
configuration: --arch=armel --target-os=linux --enable-gpl --enable-omx --enable-omx-rpi --enable-nonfree --enable-mmal
libavutil 56. 26.100 / 56. 26.100
libavcodec 58. 47.103 / 58. 47.103
libavformat 58. 26.101 / 58. 26.101
libavdevice 58. 6.101 / 58. 6.101
libavfilter 7. 48.100 / 7. 48.100
libswscale 5. 4.100 / 5. 4.100
libswresample 3. 4.100 / 3. 4.100
libpostproc 55. 4.100 / 55. 4.100
Output #0, mpegts, to 'pipe:1':
Output file #0 does not contain any stream
이렇게 작동이 되는데,
tvheadend에 넣어서 하면 not found가 뜨네요. 댓글 감사합니다. 저 방법으로 시도해보겠습니다~
성공했습니다. 감사합니다.
답글삭제sudo apt-get install ffmpeg 설치하고
h264도
sudo apt-get install x264로 설치했습니다.
그리고 가장 중요한게 gpu 메모리 설정이었습니다. 최대로 설정해주니 작동하네요... 감사합니다~
성공하셨다니 다행이네요~^^
답글삭제축하드려요!!
은인이십니다. 나노파이-m4를 이용해서 omv 서버 구동중에 하드웨어인코딩을 반드시 해야만 했었는데 큰도움이 되었습니다.
답글삭제감사합니다^^ 도움이되셨다니 다행이네요
답글삭제