[FFmpeg-user] Low CPU HQ format for local streaming?

Simon Roberts simon at dancingcloudservices.com
Tue Jun 30 19:21:52 EEST 2020


Hi, I'm looking to monitor the output of an ffmpeg capture, and am
investigating local streaming from ffmpeg to ffplay.

The following command line takes input from a file, rather than a capture,
but the file is an example of what the capture will generate, so I believe
it's representative.

ffmpeg -i capture-4chan.mov -f mpegts - | ffplay -f mpegts -

The capture...mov file contains prores encoded video, and I don't actually
want the audio, though I've not attempted to drop that part yet.

I've also succeeded using the matroska file as the format between the two
processes.

My problem, as was the case in one of my previous questions, seems to be
that there's some default encoding going on, and I don't like what it's
doing (low quality and high CPU usage), and I want to find a better choice.

I need to find an encoding, and presumably a file type, that a) works in a
streaming format, and b) is as low CPU usage as possible. I don't believe I
care about bandwidth, this is just shipped from one process to another and
consumed in real time.

I tried using rawvideo, but it crashes out. To distinguish the encoding
side from the decoding side, I used this command line:

ffmpeg -i capture-4chan.mov -c:v rawvideo -f mpegts - | cat /dev/null

and these appear to be the lines of interest from the output (though I
suspect it's simply that rawvideo doesn't have markers in it that allow a
receiver to know what the heck it's looking at?)

[mpegts @ 0x55f18d555440] Stream 0, codec rawvideo, is muxed as a private
data stream and may not be recognized upon reading.
av_interleaved_write_frame(): Broken pipe
Error writing trailer of pipe:: Broken pipe

I also tried using "copy" codec, that is in effect just sending the
prores across the pipe, like this:

ffmpeg -i capture-4chan.mov -c:v copy -c:a copy -f mpegts - | ffplay
-analyzeduration 10 -f mpegts -

But that complained too:
[mpegts @ 0x5604ba2e85c0] Stream 0, codec prores, is muxed as a private
data stream and may not be recognized upon reading.
[mpegts @ 0x5604ba2e85c0] Stream 1, codec pcm_s16le, is muxed as a private
data stream and may not be recognized upon reading.

and

Failed to open file 'pipe:' or configure filtergraph
av_interleaved_write_frame(): Broken pipe
Error writing trailer of pipe:: Broken pipe

So, I think my question is "what encoding, and what file type" would suit
my needs for a very low CPU overhead, but not caring about bandwidth, for
this?

TIA,
Simon

-- 
Simon Roberts
(303) 249 3613


More information about the ffmpeg-user mailing list