6

Я использовал следующую команду для попытки потоковой передачи из файла с помощью ffmpeg:

ffmpeg -re -i GunGrave\ -\ 03\ -\ Rain.webm -c copy -f asf rtmp://127.0.0.1:8090/test.asf

Это дало следующий результат:

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)

А вот мой файл 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>

Когда я пытаюсь воспроизвести поток в проигрывателе Windows Media, происходит сбой, ссылаясь на неподдерживаемый тип файла. Когда я пытаюсь воспроизвести поток в kmplayer, программа просто зависает. Он отказывается играть в тегах в Firefox или Chrome. Мне в первую очередь нужно, чтобы он работал в HTML5, поэтому для меня это главная проблема. Я получаю аналогичные результаты, используя TS вместо ASF. Я готов использовать любой тип файла / кодек для этого.

1 ответ1

4

Вы, вероятно, скопировали файл конфигурации FFserver откуда-то. Вы не можете поместить любой тип видео в поток ASF, и он может не работать с видео H.264. Кроме того, вы говорите FFmpeg скопировать видео и аудио кодеки и форсируете формат ASF с выводом FFserver вместо того, чтобы просто позволить FFserver обрабатывать все.

Если вы хотите потоковую передачу HTML5, вы можете переключиться на видео WebM. Кроме того, вы не можете использовать RTMP: вам нужно будет передавать по HTTP. Это сообщение в блоге должно помочь вам начать: потоковое видео в формате WebM с помощью FFmpeg.

Вот пример файла конфигурации из этого блога - я просто заменил vorbis на libvorbis так как это дает лучшее качество:

<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>

Для потоковой передачи видео используйте:

ffmpeg -i GunGrave.webm http://127.0.0.1:8090/test.webm

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .