우선 사과와 바나나를 비교하십시오. mp3는 코덱이고 mp4는 컨테이너입니다.
mp4 파일을 "스트리밍"하는 경우 디코더에 무엇을보고 있는지에 대한 단서를 제공하지 않고 바이너리 데이터를 스트리밍하면됩니다. 그 HLS와 주식이 들어오는 그 곳.
당신이 언급하는 것에 따라, mp3를 스트리밍하기 위해, 사람은 Icecast 또는 rtmp 서버와 같은 약간의 추가를 필요로한다. AVC/AAC를 스트리밍하려는 경우와 동일합니다. 예 : DASH, HLS, rtmp, rtsp, mpeg2 전송 스트림을 사용하는 udp (컨테이너로 제공되며 스트림 준비 됨) (대부분의 것들은 어떻게 든 mpeg2ts를 기반으로합니다)
문제는 클라이언트 측 요구 사항과 관련이 있습니다. HTML5 호환 및 교차 플랫폼을 원한다면 현재 기본적으로 라이브 스트리밍을 위해 HLS 또는 DASH 만 사용할 수 있습니다.
수신자 응용 프로그램이 Flash 또는 HTML5와 다른 것일 수있는 경우 추가 스트리밍 서버 사용을 암시하지 않는 가장 간단한 방법 중 하나는 mpeg2 전송 스트림의 UDP 스트리밍을 사용하는 것입니다.
당신이 다른 기술의 작동 방식을 생각 얻을 수 있습니다, 그래서 내가 매우 단순화 된 그림을 추가 할 것입니다
:
은 또한 끊임없이 새로운 기술이오고됩니다, 예를 들어, 최근 응용 프로그램에서 HTML5 브라우저로 라이브 스트리밍하는 경우 WebRTC를 사용합니다.
이론적으로 .mp4 바이너리 데이터를 스트리밍 할 수는 있지만 클라이언트는이를 위해 매우 잘 준비되어야합니다. 클라이언트가 파일 시작 부분에 moov Atom을받지 못하면 실제로는 더 이상 mp4 스트림을 수신하지 않고 이진 AVC/AAC 스트림 만 수신합니다. 이것은 MPEG DASH가 작동하는 방식과 다소 차이가 있습니다. 짧은 시간 동안 바이너리 파일 청크와 함께 별도의 파일로 디코딩에 필요한 정보를 저장합니다.
난 그냥 그 위에, 여기에 관련된는 FFmpeg 명령을 밟은
[편집] :
ffmpeg -i D:\input.mxf -s 640x360 -hls_list_size 30 -hls_flags delete_segments+append_list+omit_endlist -hls_list_size 1 -f hls c:\xampp\htdocs\out.m3u8
다음
내가 다운로드 및 내 웹 서버의 루트에이 추출 : 거기에서 https://github.com/video-dev/hls.js
을 나는 데모 페이지를 오픈 hls.js : http://localhost/hls/demo/index.html - 그리고 거기에 내 m3u8 "http://localhost/out.m3u8"에 대한 URL을 입력하고 내 라이브 비디오를 잘 해줬습니다.Change ffmpeg input on the fly
비디오 사운드를 포함 하는가 : 브라우저 ;-)
는 소스에 어떤 플러그인을 설치하지 않고? 침묵하는 경우 (예 : CCTV 보안 카메라에서) 거기에 대한 해결책이있을 수 있습니다. –
비디오에 소리가 들립니다. –
@ VC.One 내가 묻는다면 소리없이 당신의 해결책은 무엇이겠습니까 – Harry