H.264 bit akışını ffmpeg - ffserver kullanarak tarayıcıda görüntüleme


2

Bu, https://raspberrypi.stackexchange.com/questions/93254/stream-usb-webcam-with-audio?noredirect=1#comment150507_93254

Ben, benden önce birçok cesur tamirci gibi, eski bir USB kameranın (c920) bir ağ akış cihazı (örneğin, bebek monitörü) yapmak için ahududu pi ile eşleşmesinin basit bir görev olacağını düşündüm. Benden önce olanlar, şimdi farkettim (iki gün saçımı yırtdıktan sonra), bunun son derece karmaşık bir iştir.

Sorun bildirimi: Bir ahududu pi sıfır ve bir c920 webcam var. Web kamerasından H.264 bit akışını kullanmak ve kodunu dönüştürmeden pi üzerinde hizmet etmek istiyorum (zayıf işlemci gerçekten zor olurdu). Video akışını sesiyle birleştirmek ve bir tarayıcıya (telefon, tablet, bilgisayar - NAPI'siz bir HTML5) göndermek istiyorum.

Mevcut stratejim aşağıdakileri yapmaktır:

ffmpeg -re -f s16le -i /dev/zero -f v4l2 -thread_queue_size 512 -codec:v h264 -s 1920x1080 -i /dev/video0 -codec:v copy -acodec aac -ab 128k -g 50 http://localhost:8090/camera.ffm (Bu kukla ses ile - Ben daha sonra ses ekleyeceğimi düşündüm)

Ardından sudo ffserver -d -f /etc/ffserver.confbeslemeyi almak ve bir yayın olarak yayınlamak. Bu ffserver.confdosya:

`HTTPPort 8090
HTTPBindAddress 0.0.0.0
MaxHTTPConnections 2000
MaxClients 1000
MaxBandwidth 100000
CustomLog -
<Feed camera.ffm>
  File /tmp/streamwebm.ffm
  FileMaxSize 50M
  ACL allow localhost
  ACL allow 128.199.149.46
  ACL allow 127.0.0.1
  ACL allow 192.168.0.0 192.168.0.255
</Feed>
<Stream stream>
ACL allow 192.168.0.0 192.168.0.255    
Format webm

# Video Settings
VideoFrameRate 30
VideoSize 1920x1080

# Audio settings
AudioCodec libvorbis
AudioSampleRate 48000
AVOptionAudio flags +global_header

MaxTime 0
AVOptionVideo me_range 16
AVOptionVideo qdiff 4
AVOptionVideo qmin 4
AVOptionVideo qmax 40
#AVOptionVideo good
AVOptionVideo flags +global_header

# Streaming settings
PreRoll 10
StartSendOnKey

Metadata author "author"
Metadata copyright "copyright"
Metadata title "Web app name"
Metadata comment "comment"
</stream>

Benim temel html<html><head></head><body><video> <source src="http://localhost:8090/stream"> </video></body></html>

Akış, ancak, çalışmıyor (tarayıcı bağlanmayacak) ve ben aşağıdakileri alıyorum: görüntü tanımını buraya girin

Ve müşterideki tarayıcı diyor ki (failed) NET::ERR_CONNECTION_REFUSED

Düşünceler: - https://stackoverflow.com/questions/28435564/begin-stream-simple-mp4-with-ffserver , ffserver'ın başlıklar veya başka bir şey yüzünden .mp4 akışını gerçekleştiremediğini açıklar. Bu yüzden webm kullanıyorum (h.264'ü desteklemiyorum ve inanıyorum ve vp9'a dönüşen gerçekten yavaş performansa neden oluyor). Şu anda CPU kullanımı hakkında endişelenmiyorum, sadece tarayıcıda görünecek bir resim elde etmek istiyorum!

  • Bir sorunun 'yığınla' ilgilendiğini duydum - kamera h.264'ün bir bit akımı olduğunu, ancak h.264 için h.264 akışlarının parçalanması gerekir. Bunun işe yarayacağından emin değilim.

  • VLC'yi bazı şeyler için denedim (RTP) ama başaramadım.

  • Kaynakların çoğu (SE ve diğer siteler) 2010-2015 yılları arasındadır ve o zamandan beri v4l2 ve diğer şeylerin geliştiği düşünülmektedir.

  • Sorunum büyük olasılıkla konunun genel cehaleti olduğundan, farklı tekniklerin arkasındaki teori hakkında genel bir anlayış sağlayan cevapları takdir ediyorum. Bunun soruyu daha fazla görüşme çağrısı yaptığını ve SE için daha az uygun olduğunu biliyorum, ancak bilgisayarımı pencereden dışarı atmayı düzeltirim (hissi bilirsiniz).

Teşekkür ederim!

Yanıtlar:


0

Ffmpeg çağrısında localhost değerini 127.0.0.1 olarak değiştirmek bu sorunu benim için düzeltti.


Öyleyse, ana bilgisayar ad çözümlemeyle ilgili bazı sorunlarınız oldu.
RalfFriedl
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.