Muszę utworzyć kanał, który ma dwa strumienie - webm i mp4 - aby był kompatybilny ze wszystkimi odtwarzaczami wideo HTML5. Strumień webm działa idealnie. Jednak podczas próby uzyskania dostępu do strumienia mp4 serwer wyrzuca następujący błąd:
Sat Mar 9 23:21:54 2013 muxer does not support non seekable output
Oto część pliku ffserver.conf, która dotyczy strumienia mp4:
<Stream channel1.mp4> # Output stream URL definition
Feed feed1.ffm # Feed from which to receive video
Format mp4
# Audio settings
AudioCodec libmp3lame
AudioBitRate 64 # Audio bitrate
# Video settings
VideoCodec libx264
VideoSize 560x320 # 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>
Z tego, co mogę znaleźć, niektórzy twierdzą, że mp4 po prostu nie może być przesyłany strumieniowo. Nie mam przywiązania do mp4, z wyjątkiem faktu, że miałem wrażenie, że potrzebujesz mp4, aby przesyłać strumieniowo wideo do iPhone'a za pomocą odtwarzacza wideo HTML5. Jeśli tak nie jest, daj mi znać, a chętnie przejdę do czegoś, co gra ładniej przy streamingu ffmpeg.
-movflags faststart
lub potraktowanie goqt-faststart
, a następnie wskazanie pliku MP4 w<video>
znaczniku. Twój serwer potrzebuje wtedy modułu przesyłania strumieniowego H.264, aby umożliwić klientowi wyszukiwanie. Czy masz wkład na żywo?Odpowiedzi:
Artykuł HTML 5 i wideo na iPada z własnej witryny internetowej , ostatnio zaktualizowane 12 listopada 2014 r., Zawiera następujące informacje:
W artykule zaleca się używanie MP4 jako dobrego rozwiązania z wystarczająco nową wersją ffmpeg, wykorzystującą kodowanie H.264 z AAC.
Sugeruję przeczytanie artykułu z dbałością o szczegóły: zawiera przykładowy plik HTML, który będzie działał na wszystkich głównych przeglądarkach, a także przykładowe polecenie FFmpeg służące do konwersji plików wideo na pliki .mp4, aby mogły być poprawnie przesyłane strumieniowo.
źródło
Przypuszczam, że warto pomyśleć o przesyłaniu strumieniowym na żywo HTTP.
https://developer.apple.com/streaming/
Jak rozumiem, działa dobrze w urządzeniach iOS.
Oto jeden z przykładów:
/programming/28723993/ffmpeg-hls-stream-for-android-and-ios
źródło