Ich habe den folgenden Befehl verwendet, um zu versuchen, aus einer Datei mit ffmpeg zu streamen:
ffmpeg -re -i GunGrave\ -\ 03\ -\ Rain.webm -c copy -f asf rtmp://127.0.0.1:8090/test.asf
Dies ergab die folgende Ausgabe:
ffmpeg version N-50515-g28adecf Copyright (c) 2000-2013 the FFmpeg developers built on Mar 5 2013 22:35:30 with gcc 4.4.6 (GCC) 20120305 (Red Hat 4.4.6-4)
configuration: --enable-gpl --enable-libmp3lame --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libx264
libavutil 52. 17.103 / 52. 17.103
libavcodec 54. 92.100 / 54. 92.100
libavformat 54. 63.103 / 54. 63.103
libavdevice 54. 3.103 / 54. 3.103
libavfilter 3. 42.103 / 3. 42.103
libswscale 2. 2.100 / 2. 2.100
libswresample 0. 17.102 / 0. 17.102
libpostproc 52. 2.100 / 52. 2.100
Input #0, matroska,webm, from 'GunGrave - 03 - Rain.webm':
Metadata:
title : [AHQ] GunGrave - 19 - Superior
Duration: 00:24:20.44, start: 0.000000, bitrate: 259 kb/s
Stream #0:0: Video: vp8, yuv420p, 768x432, SAR 1:1 DAR 16:9, 29.97 fps, 29.97 tbr, 1k tbn, 1k tbc (default)
Stream #0:1: Audio: vorbis, 48000 Hz, stereo, fltp (default)
Und hier ist meine Datei ffserver.config:
Port 8090
BindAddress 0.0.0.0
MaxHTTPConnections 2000
MaxClients 1000
MaxBandwidth 1000
CustomLog -
<Feed feed1.ffm>
File /tmp/feed1.ffm
FileMaxSize 200K
ACL allow 127.0.0.1
</Feed>
<Stream test.ts>
Feed feed1.ffm
Format mpegts
AudioCodec libmp3lame
AudioBitRate 128
AudioChannels 2
AudioSampleRate 44100
AVOptionAudio flags +global_header
VideoBitRate 800
VideoFrameRate 25
VideoSize 640x480
VideoCodec libx264
AVOptionVideo flags +global_header
</Stream>
<Stream test.asf>
Feed feed1.ffm
Format asf
AudioCodec mp3
AudioBitRate 128
AudioChannels 2
AudioSampleRate 44100
AVOptionAudio flags +global_header
VideoBitRate 800
VideoFrameRate 25
VideoSize 640x480
VideoCodec libx264
AVOptionVideo flags +global_header
</Stream>
<Stream stat.html>
Format status
# Only allow local people to get the status
ACL allow localhost
ACL allow 192.168.0.0 192.168.255.255
</Stream>
# Redirect index.html to the appropriate site
<Redirect index.html>
URL http://www.ffmpeg.org/
</Redirect>
Wenn ich versuche, den Stream in Windows Media Player abzuspielen, wird der nicht unterstützte Dateityp nicht angegeben. Wenn ich versuche, den Stream in kmplayer abzuspielen, hängt das Programm einfach. Es weigert sich, in einem Tag in Firefox oder Chrom zu spielen. Ich brauche es hauptsächlich, um in HTML5 zu arbeiten, daher ist dies das Hauptproblem für mich. Ich erhalte ähnliche Ergebnisse mit ts anstelle von asf. Ich bin bereit, den Dateityp / Codec zu verwenden, der für diese Aufgabe geeignet ist.
ffserver
Experte, aber Ihretest.asf
Konfiguration befasst sich mit MP3-Audio und H.264-Video, während der FFmpeg-Ausgang über Vorbis-Audio und VP8-Video verfügt. Die Videogröße stimmt auch nicht. Wenn-c copy
Sie nur diese Video- und Audio-Bitstreams auf den Ausgang kopieren.Antworten:
Sie haben wahrscheinlich die FFserver-Konfigurationsdatei von irgendwoher kopiert. Sie können keine Art von Video in einen ASF-Stream einfügen und es funktioniert möglicherweise nicht mit H.264-Video. Außerdem fordern Sie FFmpeg auf, die Video- und Audio-Codecs zu kopieren und das ASF-Format mit der FFserver-Ausgabe zu erzwingen, anstatt FFserver alles zu überlassen.
Wenn Sie HTML5-Streaming möchten, können Sie zu WebM-Video wechseln. Sie können RTMP auch nicht verwenden: Sie müssen über HTTP streamen. Dieser Blog-Beitrag soll Ihnen den Einstieg erleichtern: Streamen von Live-WebM-Videos mit FFmpeg.
Hier ist ein Beispiel - Konfigurationsdatei aus diesem Blog-I nur ersetzt
vorbis
mit ,libvorbis
da diese eine bessere Qualität:Verwenden Sie zum Streamen des Videos Folgendes:
quelle