URL: https://www.overclockers.at/applications/solvedvlc-transcode-h264-stream-zu-mjpeg_248031/page_1 - zur Vollversion wechseln!
Moin,
ich verzweifle derzeit massive am Konvertieren eines h264 Streams zu mjpeg.
Dr. Google hat mir nicht geholfen und das VLC Forum dürfte mehr Schein als Sein sein. Zumindest wurde dort bislang nichtmal irgendwie kommentiert.
Das Problem is verzwickt und ich komm nicht drauf warums einmal funktioniert, dann nach kurzer Zeit nimma und dann wieder gar nicht. Egal was ich mach.
Folgende Komponenten:
Ubiquiti G3 Dome Cam
RTSP URL:
rtsp://10.0.0.xx:554/s0
Width:1024
Height:576
Bitrate:2000 kbps
FPS:30
Raspian mit installiertem VLC (läuft in der einer VM - 1 Core vom i7, 1,5GB Ram)
Das Kommando:
Hat schon funktioniert. Habs dann in den Autostart verfrachtet, mit dem Ergebnis, dass es nach xx Sekunden plötzlich mit:Code:cvlc -I dummy -v -R rtsp://10.0.0.xx/s0 --sout='#transcode{threads=2,acodec=none,vcodec=MJPG ,vb=2200,width=800,height=450,fps=20}:standard{mu x=mpjpeg,access=http{user=xxx,pwd=xxx,mime=m ultipart/x-mixed-replace; boundary=--7b3cc56e5f51db803f790dad720ed50a},dst=:8080/cam.mjpg}' --sout-keep
stoppt.Zitat[00007f1e7c000d18] core stream output warning: trying to send non-dated packet to stream output! [00007f1e7c000d18] core stream output warning: trying to send non-dated packet to stream output! [00007f1e7c000d18] core stream output warning: trying to send non-dated packet to stream output! [00007f1e8c000c28] core input error: ES_OUT_SET_(GROUP_)PCR is called too late (pts_delay increased to 1000 ms) [00007f1e8c000c28] core input error: ES_OUT_RESET_PCR called
Zitat[mjpeg @ 0x7fb0f8226b40] rc buffer underflow [mjpeg @ 0x7fb0f8226b40] rc buffer underflow [mjpeg @ 0x7fb0f8226b40] rc buffer underflow [mjpeg @ 0x7fb0f8226b40] rc buffer underflow [mjpeg @ 0x7fb0f8226b40] rc buffer underflow [mjpeg @ 0x7fb0f8226b40] rc buffer underflow [mjpeg @ 0x7fb0f8226b40] rc buffer underflow [mjpeg @ 0x7fb0f8226b40] rc buffer underflow [mjpeg @ 0x7fb0f8226b40] rc buffer underflow [mjpeg @ 0x7fb0f8226b40] rc buffer underflow
up ^
all meine transcoding-versuche mit vlc scheiterten stehts an (je nach version) unterschiedlichen bugs.
vielleicht besser ffmpeg verwenden?
@ raspian: solls später auf nem raspi landen oder wieso eine arm-distri in der vm?
bei raspian handelt es sich um loxberry. ein fanprojekt für loxone (smarthome).
jemand hat sich die mühe gemacht das zu virtualisieren und das verwend ich jetzt am nas.
kannst mir mit ffmpeg unter die arme greifen oder soll ich lieber google bemühen?
ffmpeg hab ich installiert. config bzw. command, dass es läuft hab ich allerdings noch nicht...
da kann ich im detail leider auch nicht weiterhelfen ;(
Ich nutze zwar avconv statt ffmpeg, aber im Prinzip is das eh dasselbe, nur die Optionen heißen tlw. etwas anders und ein paar Kleinigkeiten können sich unterscheiden. Ist halt aus'm libav Projekt, was zu 99% deckungsgleich mit ffmpeg ist.
Bsp. für einen H.264/AVC Elementarstream zu MJPEG in einem MKV Container, Input/Output-Framerate von 25fps (Schräge Frameraten wie NTSC kannst auch per Bruch schreiben, z.B. "24000/1001"):
Andere Container wären z.B. mp4 oder mov, wenn nötig (z.B. -f mov). Falls die Quelle Audio mitbringt (z.B. ein .mp4 File), kannst es per -an abdrehen. Meinen eigenen avconv Build findest u.a. [hier], falls du es für Windows haben willst (etwas weiter unten).Code:$ avconv -c:v h264 -r 25 -i ~/videos/input.h264 -c:v mjpeg -r 25 -f matroska ~/videos/output.mkv
Code:|+ Segment tracks | + A track | + Track number: 1 (track ID for mkvmerge & mkvextract: 0) | + Track UID: 1 | + Lacing flag: 0 | + Language: und | + Default flag: 0 | + Codec ID: V_MJPEG | + Track type: video | + Default duration: 40.000ms (25.000 frames/fields per second for a video track) | + Video track | + Pixel width: 1920 | + Pixel height: 1080 | + Display unit: 3 (aspect ratio) | + Display width: 1920 | + Display height: 1080
Spielt auch sauber ab bei mir nach dem Transcode. Zur Identifikation der Parameter des Inputs (wie Framerate) empfehle ich das Tool MediaInfo, is cross-platform und gibts auch mit GUIs.Code:Video ID : 1 Format : V_MJPEG Codec ID : V_MJPEG Duration : 10 min Bit rate : 11.7 Mb/s Width : 1 920 pixels Height : 1 080 pixels Display aspect ratio : 16:9 Frame rate mode : Constant Frame rate : 25.000 FPS Bits/(Pixel*Frame) : 0.226 Stream size : 876 MiB (98%) Writing library : Lavc56.1.0 mjpeg Default : No Forced : No
ich steck immer noch... hätt wohl doch einfach eine mjpg cam nehmen sollen
hab jetzt im google was gefunden was ev. etwas weiterhilft (für jemanden der sich auskennt)
klick
wirft folgendes aus:Code:ffprobe 'rtsp://camera_url/'
ZitatInput #0, rtsp, from 'rtsp://10.0.0.86/s0':
Metadata:
title : s0
Duration: N/A, start: 0.093968, bitrate: N/A
Stream #0:0: Audio: aac (LC), 11025 Hz, mono, fltp
Stream #0:1: Video: h264 (Main), yuvj420p(pc, bt709, progressive), 1920x1080 [SAR 189:190 DAR 168:95], 25 fps, 25 tbr, 90k tbn, 50 tbc
Code:ffmpeg -re -i 'rtsp://camera_url' -pix_fmt yuv420p -an -c:v mjpeg -q:v 0 -f mjpeg udp://nvr_ip:some_port_above_1024
Code:http://xx.xx.xx.xx:[port]/cam.mjpg
Moment, WAS? Du willst einen Streaming Server, verstehe ich das so richtig? Mein Ansatz war rein filebasiert, also Quellfile, Zielfile, alles offline.
Was genau ist es eigentlich, was du da machst / machen willst?
ja exakt. ich habe eine überwachnungscam die einen h264 stream liefert.
der muss, weil meine haussteuerung nix anderes checkt, in mjpg transcodiert werden.
sorry falls das bis jetzt nicht ausreichend rüber kam.
Ich bin da etwas rückständig, also mit Bitte um Entschuldigung wenn ich das jetzt so fragen muß, aber was fängt eine "Haussteuerung" mit einem Videostream an?!
Ist ein smart home server der u.a. ein intercom interface (also Gegensprechanlage) mit sich bringt. Dh die cam am vorplatz meines hauses schaut zur klingel bzw halt zum tor.
Wenns klingelt verbindet sich die sip Gegensprechanlage mit dem handy und dieses intercom interface zeigt dann auch gleichzeitig an wer dort steht.
Was du also brauchst ist ein low-latency Livestream zwischen zwei Devices bzw. Netzwerkservices...
Mh, ich hab das Gefühl, ich könnte fast motiviert sein mir das anzusehen.. Vielleicht nächste Woche.
Leider hab ich keinerlei Hardware dieser Art, daher ist's ein wenig schwierig...
Du bist herzlichst eingeladen vorbei zu kommen, wenns an hw scheitert
Mo hätt ich frei. Abends geht immer
habs geschafft!!
in der /etc/server.conf hab ich nun folgendes eingetragen:
dann ffserver starten (muss ich mir noch anschauen wie ich das automatisch beim systemstart starte, sollte aber nicht so ein großes ding sein hoffe ich...)ZitatHTTPPort 8888
HTTPBindAddress 0.0.0.0
MaxHTTPConnections 2000
MaxClients 1000
MaxBandwidth 1000000
CustomLog -
<Feed feed1.ffm>
File /tmp/feed1.ffm
FileMaxSize 20M
Launch ffmpeg -i "rtsp://10.0.0.86:554/s2"
</Feed>
<Stream s2.mjpg>
Feed feed1.ffm
Format mpjpeg
VideoBitRate 10000
VideoFrameRate 15
VideoSize 800x450
VideoIntraOnly
NoAudio
Strict -1
NoDefaults
</Stream>
overclockers.at v4.thecommunity
© all rights reserved by overclockers.at 2000-2024