FFmpeg - Stream kann nicht abgespielt werden

6

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.

Fibericon
quelle
1
Ich bin kein Streaming- oder ffserverExperte, aber Ihre test.asfKonfiguration 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 copySie nur diese Video- und Audio-Bitstreams auf den Ausgang kopieren.
Slhck
In welches Format müsste ich das Video konvertieren, damit es abgespielt werden kann?
Fibericon

Antworten:

4

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 vorbismit , libvorbisda diese eine bessere Qualität:

<Stream test.webm>       # Output stream URL definition
   Feed feed1.ffm              # Feed from which to receive video
   Format webm

   # Audio settings
   AudioCodec libvorbis
   AudioBitRate 64             # Audio bitrate

   # Video settings
   VideoCodec libvpx
   VideoSize 720x576           # Video resolution
   VideoFrameRate 25           # Video FPS
   AVOptionVideo flags +global_header  # Parameters passed to encoder 
                                       # (same as ffmpeg command-line parameters)
   AVOptionVideo cpu-used 0
   AVOptionVideo qmin 10
   AVOptionVideo qmax 42
   AVOptionVideo quality good
   AVOptionAudio flags +global_header
   PreRoll 15
   StartSendOnKey
   VideoBitRate 400            # Video bitrate
</Stream>

Verwenden Sie zum Streamen des Videos Folgendes:

ffmpeg -i GunGrave.webm http://127.0.0.1:8090/test.webm
slhck
quelle
Erstaunlich, ich habe so lange auf diese Konsole gestarrt.
Fibericon