vinay samuel
vinay samuel

Reputation: 187

Options for realtime transcoding 1080p streams from file on beaglebone black

I have several 1080p video streams. I wanted to be able to stream any one of these streams to a browser. This requires that I transcode to a smaller resolution and to flv format or ogg/webm format. I tried this using vlc on the beagle bone black with the following command line.

cvlc 00080.MTS --sout "#transcode{vcodec=FLV1,acodec=mp3,vb=200,deinterlace,ab=32,width=720,height=480}:std{access=http,mux=ffmpeg{mux=flv},dst=/stream.flv,caching=3000}"

This gives me the following error

[h264 @ 0xb547c3e0] reference picture missing during reorder
[h264 @ 0xb547c3e0] Missing reference picture

I believe this is because the processor is too slow and incapable of handling 1080p. Because I tried the same thing with a 480p video and I get no such error.

My question is - Is there any other way I can transcode to a smaller resolution on the fly so it can be either streamed or viewed through HTML5 video. I tried pre transcoding all the streams but it took me 4 days and it still did not complete transcoding all the videos I had :) so that might not be an option. Thanks in advance for your time.

Upvotes: 1

Views: 2493

Answers (1)

Matyas
Matyas

Reputation: 13712

In order to use the html5 player your only choices are ogg and webm (or mp4, but that is not supported by vlc)

Stream to WEBM

cvlc \
v4l2:///dev/video0 \
--sout '#transcode{vcodec=VP80,vb=1000}:std{access=http{mime=video/webm},mux=webm,dst=:8080/cam1}' \
-vvv

Notes:

180% - 250% CPU usage (on a 4core / 8 thread i7-4770)

Stream to OGG

cvlc \
v4l2:///dev/video0 \
--sout '#transcode{vcodec=theo,vb=2000}:std{access=http{mime=video/ogg},mux=ogg,dst=:8080/cam1}' \
-vvv

Notes

  • 30% CPU usage
  • Quality worse than webm (even when the bitrate is 2xWebM bitrate)

Upvotes: 1

Related Questions