nginx.conf는 간단합니다.
sudo cat /usr/local/nginx/conf/nginx.conf
worker_processes 1;
error_log logs/error.log error;
events {
worker_connections 4096;
}
rtmp {
server {
listen 1935;
application live {
live on;
dash on;
dash_path /mnt/dash;
dash_fragment 15s;
}
}
}
http {
server {
listen 80;
location /dash {
root /mnt;
}
}
types {
text/html html;
application/dash+xml mpd;
}
}
웹캠을 127.0.0.1로 푸시했습니다.
output="rtmp://127.0.0.1:1935/live/sample"
ffmpeg -f v4l2 -video_size 640x480 -i /dev/video0 -c:v libx264 -f flv $output
rtmp 프로토콜을 사용하여 가져오기:
ffplay rtmp://127.0.0.1:1935/live/sample
성공!
대시 프로토콜을 사용하여 끌어옵니다.
ffplay http://127.0.0.1/dash/sample.mpd
오류가 발생했습니다:
http://127.0.0.1/dash/sample.mpd: Invalid data found when processing input
어떻게 고치나요?
내 운영체제: debian9.
ffplay -formats |& grep "DASH Muxer"
E dash DASH Muxer
답변1
DASH Demusing을 활성화하여 다시 컴파일 해야 합니다 ffplay
. DASH 역다중화를 활성화한 운영 체제에 대해 이미 미리 만들어진 패키지가 있을 수 있지만, 확실하지 않고 사용 중인 OS를 지정하지 않았기 때문에 ffplay
DASH 역다중화를 활성화하여 수행하는 방법을 설명하겠습니다. 함수를 재사용할 때 수동으로 빌드하세요.
ffmpeg 저장소를 복제합니다.
git clone --depth 1 https://git.ffmpeg.org/ffmpeg.git ffmpeg
ffmpeg 디렉터리로 전환합니다.
cd ffmpeg
필수 매개변수를 사용하여 ./configure 스크립트를 실행합니다.
./configure --prefix=$HOME/ffmpeg-install --enable-demuxer=dash --enable-libxml2
다음을 위해 ffplay를 빌드하고 설치합니다 $HOME/ffmpeg-install
.
make -j$(nproc) install
내 컴퓨터에서는 4분 밖에 걸리지 않았습니다. ffmpeg의 새 빌드에 DASH Demushing이 지원되는지 확인하세요.
$ ~/ffmpeg-install/bin/ffplay -formats |& grep "DASH Muxer"
DE dash DASH Muxer
재고 ffplay 대신 이것을 사용하십시오.
~/ffmpeg-install/bin/ffplay http://127.0.0.1/dash/sample.mpd
인용하다:이 답변