Hello Michael,
I have that ffmpeg command going, it seems
However I don't see anything really in the http/html page
(Just a sad smiley with the text: "No video with supported format and
MIME type found"
this is the HTML I am using:
<html>
<header>
</header>
<body>
<video width="320" height="240" controls>
<source src="IP-Cameras/stream/index.m3u8" type="video/mp4">
Your browser does not support the video tag.
</video>
</body>
</html>
ffmpeg is creating files like:
-rw-r--r-- 1 root root 148 May 8 21:46 index.m3u8
-rw-r--r-- 1 root root 628296 May 8 21:46 segment-0.ts
-rw-r--r-- 1 root root 1962532 May 8 21:35 segment-10.ts
-rw-r--r-- 1 root root 2030588 May 8 21:36 segment-11.ts
below is what ffmpeg throws on the terminal:
tia, Ron
# ffmpeg -i
rtsp://192.168.x.y:554/user=admin_password=XXXXXXXX_channel=1_stream=0.sdp?real_stream
-f hls -hls_playlist_type event -hls_segment_type mpegts
-hls_segment_filename segment-%d.ts index.m3u8
ffmpeg version 3.4.6 Copyright (c) 2000-2019 the FFmpeg developers
built with gcc 4.8.5 (GCC) 20150623 (Red Hat 4.8.5-36)
configuration: --prefix=/usr --bindir=/usr/bin
--datadir=/usr/share/ffmpeg --docdir=/usr/share/doc/ffmpeg
--incdir=/usr/include/ffmpeg --libdir=/usr/lib64 --mandir=/usr/share/man
--arch=x86_64 --optflags='-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2
-fexceptions -fstack-protector-strong --param=ssp-buffer-size=4
-grecord-gcc-switches -m64 -mtune=generic' --extra-ldflags='-Wl,-z,relro
' --extra-cflags=' ' --enable-libopencore-amrnb
--enable-libopencore-amrwb --enable-libvo-amrwbenc --enable-version3
--enable-bzlib --disable-crystalhd --enable-fontconfig --enable-gcrypt
--enable-gnutls --enable-ladspa --enable-libass --enable-libbluray
--enable-libcdio --enable-libdrm --enable-indev=jack
--enable-libfreetype --enable-libfribidi --enable-libgsm
--enable-libmp3lame --enable-nvenc --enable-openal --enable-opencl
--enable-opengl --enable-libopenjpeg --enable-libopus
--disable-encoder=libopus --enable-libpulse --enable-librsvg
--enable-libsoxr --enable-libspeex --enable-libtheora --enable-libvorbis
--enable-libv4l2 --enable-libvidstab --enable-libx264 --enable-libx265
--enable-libxvid --enable-libzvbi --enable-avfilter --enable-avresample
--enable-postproc --enable-pthreads --disable-static --enable-shared
--enable-gpl --disable-debug --disable-stripping --shlibdir=/usr/lib64
--enable-libmfx --enable-runtime-cpudetect
libavutil 55. 78.100 / 55. 78.100
libavcodec 57.107.100 / 57.107.100
libavformat 57. 83.100 / 57. 83.100
libavdevice 57. 10.100 / 57. 10.100
libavfilter 6.107.100 / 6.107.100
libavresample 3. 7. 0 / 3. 7. 0
libswscale 4. 8.100 / 4. 8.100
libswresample 2. 9.100 / 2. 9.100
libpostproc 54. 7.100 / 54. 7.100
Guessed Channel Layout for Input Stream #0.1 : mono
Input #0, rtsp, from
'rtsp://192.168.x.y:554/user=admin_password=XXXXXXXX_channel=1_stream=0.sdp?real_stream':
Metadata:
title : RTSP Session
Duration: N/A, start: 0.000000, bitrate: N/A
Stream #0:0: Video: h264 (Main), yuvj420p(pc, bt709, progressive),
1280x720, 6 fps, 6 tbr, 90k tbn, 12 tbc
Stream #0:1: Audio: pcm_alaw, 8000 Hz, mono, s16, 64 kb/s
Stream mapping:
Stream #0:0 -> #0:0 (h264 (native) -> h264 (libx264))
Stream #0:1 -> #0:1 (pcm_alaw (native) -> aac (native))
Press [q] to stop, [?] for help
[aac @ 0x10a6e80] Too many bits 8832.000000 > 6144 per frame requested,
clamping to max
[libx264 @ 0x108a9a0] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2
[libx264 @ 0x108a9a0] profile High, level 3.1
[libx264 @ 0x108a9a0] 264 - core 148 r2795 aaa9aa8 - H.264/MPEG-4 AVC
codec - Copyleft 2003-2017 - http://www.videolan.org/x264.html -
options: cabac=1 ref=3 deblock=1:0:0 analyse=0x3:0x113 me=hex subme=7
psy=1 psy_rd=1.00:0.00 mixed_ref=1 me_range=16 chroma_me=1 trellis=1
8x8dct=1 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=-2
threads=22 lookahead_threads=3 sliced_threads=0 nr=0 decimate=1
interlaced=0 bluray_compat=0 constrained_intra=0 bframes=3 b_pyramid=2
b_adapt=1 b_bias=0 direct=1 weightb=1 open_gop=0 weightp=2 keyint=250
keyint_min=6 scenecut=40 intra_refresh=0 rc_lookahead=40 rc=crf mbtree=1
crf=23.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00
[hls @ 0x1089fa0] Opening 'segment-0.ts' for writing
Output #0, hls, to 'index.m3u8':
Metadata:
title : RTSP Session
encoder : Lavf57.83.100
Stream #0:0: Video: h264 (libx264), yuvj420p(pc), 1280x720,
q=-1--1, 6 fps, 90k tbn, 6 tbc
Metadata:
encoder : Lavc57.107.100 libx264
Side data:
cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: -1
Stream #0:1: Audio: aac (LC), 8000 Hz, mono, fltp, 48 kb/s
Metadata:
encoder : Lavc57.107.100 aac
[hls @ 0x1089fa0] Packets poorly interleaved, failed to avoid negative
timestamp -18480 in stream 0.
Try -max_interleave_delta 0 as a possible workaround.
[hls @ 0x1089fa0] Packets poorly interleaved, failed to avoid negative
timestamp -3480 in stream 0.
Try -max_interleave_delta 0 as a possible workaround.
[hls @ 0x1089fa0] Opening 'index.m3u8.tmp' for writingitrate=N/A dup=6
drop=4 speed= 1.4x
frame= 79 fps=7.0 q=-1.0 Lsize=N/A time=00:00:15.36 bitrate=N/A dup=6
drop=4 speed=1.37x
video:519kB audio:68kB subtitle:0kB other streams:0kB global headers:0kB
muxing overhead: unknown
[libx264 @ 0x108a9a0] frame I:1 Avg QP:13.54 size:114503
[libx264 @ 0x108a9a0] frame P:40 Avg QP:18.48 size: 8896
[libx264 @ 0x108a9a0] frame B:38 Avg QP:26.25 size: 1593
[libx264 @ 0x108a9a0] consecutive B-frames: 34.2% 0.0% 15.2% 50.6%
[libx264 @ 0x108a9a0] mb I I16..4: 13.4% 23.7% 62.9%
[libx264 @ 0x108a9a0] mb P I16..4: 0.3% 0.4% 0.2% P16..4: 26.2%
3.8% 2.7% 0.0% 0.0% skip:66.4%
[libx264 @ 0x108a9a0] mb B I16..4: 0.0% 0.0% 0.0% B16..8: 23.7%
1.0% 0.3% direct: 0.2% skip:74.8% L0:45.3% L1:52.0% BI: 2.8%
[libx264 @ 0x108a9a0] 8x8 transform intra:28.8% inter:16.8%
[libx264 @ 0x108a9a0] coded y,uvDC,uvAC intra: 66.5% 0.0% 0.0% inter:
8.1% 0.0% 0.0%
[libx264 @ 0x108a9a0] i16 v,h,dc,p: 48% 13% 19% 20%
[libx264 @ 0x108a9a0] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 52% 23% 16% 2% 1%
1% 1% 2% 3%
[libx264 @ 0x108a9a0] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 47% 22% 7% 3% 3%
4% 4% 5% 4%
[libx264 @ 0x108a9a0] i8c dc,h,v,p: 100% 0% 0% 0%
[libx264 @ 0x108a9a0] Weighted P-Frames: Y:2.5% UV:0.0%
[libx264 @ 0x108a9a0] ref P L0: 77.8% 3.3% 8.4% 10.0% 0.5%
[libx264 @ 0x108a9a0] ref B L0: 87.2% 5.0% 7.8%
[libx264 @ 0x108a9a0] ref B L1: 97.9% 2.1%
[libx264 @ 0x108a9a0] kb/s:322.58
[aac @ 0x10a6e80] Qavg: 60648.969
Exiting normally, received signal 2.
On 5/4/19 9:02 AM, Michael Shaffer wrote:
For example, here I have 4 IP cameras embedded in one webpage.
https://dca.neocities.org/
On Sat, May 4, 2019 at 11:01 AM Michael Shaffer <[email protected]
<mailto:[email protected]>> wrote:
You could use ffmpeg to stream the video to youtube live. You can
embed youtube live videos in web pages..
On Fri, May 3, 2019 at 10:42 PM R C <[email protected]
<mailto:[email protected]>> wrote:
uhm... no...
basically, I just want "some way" to pull a stream from a
camera, and display it in a web page, basically rstsp over
http... I don't really want to try anything commercial. It
shouldn't be too difficult, accept, since a bit, streaming
with players is disabled in most browsers.
Ron
On 5/3/19 5:19 PM, Michael Shaffer wrote:
Have you experimented with Unreal Live Server?
http://www.umediaserver.net/umediaserver/download.html
On Fri, May 3, 2019 at 6:58 PM R C<[email protected]>
<mailto:[email protected]> wrote:
Hello Ted,
that seems to work! thank you!! That ffmpeg command is indeed making a
movie from that stream into a file, tried watching it, VLC does give me
trouble, but it shows it as a movie.
Would be cool if I could have the output as a stream, that I can embed.
I am new to ffmpeg and gstreamer things.. and the command options don't
seem to be too obvious to me
thanks,
Ron
On 5/3/19 2:17 AM, Ted Park wrote:
So my idea was tho use ffmpeg or gstreamer to embed it in html, with
some
sort of player.
Html you’re gonna need to write yourself, but you can use the rtsp
stream as an input and output HLS to embed in your html, I think this
will
get you what you want.
Something like
ffmpeg -irtsp://192.0.2.123/stream.sdp -f hls -hls_playlist_type event
-hls_segment_type mpegts -hls_segment_filename segment-%d.ts index.m3u8
Will produce a playlist file pointing to little segments of ts files
that you can host with any http server. It should work, (you might
need to
transcode to h264 if it’s not) A html5 video element with the playlist
file
as the source should play in most browsers nowadays.
<video autoplay controls src=“url/to/index.m3u8”>This text displays if
the video element isn’t supported.</video>
_______________________________________________
ffmpeg-user mailing list
[email protected] <mailto:[email protected]>
https://ffmpeg.org/mailman/listinfo/ffmpeg-user
To unsubscribe, visit link above, or email
[email protected] <mailto:[email protected]> with
subject "unsubscribe".
_______________________________________________
ffmpeg-user mailing list
[email protected] <mailto:[email protected]>
https://ffmpeg.org/mailman/listinfo/ffmpeg-user
To unsubscribe, visit link above, or email
[email protected] <mailto:[email protected]> with
subject "unsubscribe".
_______________________________________________
ffmpeg-user mailing list
[email protected] <mailto:[email protected]>
https://ffmpeg.org/mailman/listinfo/ffmpeg-user
To unsubscribe, visit link above, or email
[email protected] <mailto:[email protected]> with
subject "unsubscribe".
_______________________________________________
ffmpeg-user mailing list
[email protected]
https://ffmpeg.org/mailman/listinfo/ffmpeg-user
To unsubscribe, visit link above, or email
[email protected] with subject "unsubscribe".