ffmpeg target module

FFMPEG allows a lot of formats for video encoding, which can be seen with “ffmpeg -formats | grep EV”. For me they are: pastebin.com/ff906094
xvidcap is a program to do screencasts that support recording through FFMPEG but only supports a few formats at least in the UI.
Should I add all the formats in which ffmpeg can encode video of just a few?

Note that we can put all in synfig-tool and only a few in synfig-studio for example.

I think that initially we should include the most common codecs/formats. Later if anyone very claimed is requested can be added.
Just for code saving it is better to implement only a few. If more needed just expand the cases.

I have all the formats in mod_ffmpeg, since it’s the core part I think there should be all there and then we can show whatever a few or all of them in tool or studio but there is no need to change the core code.

So, which formats would you include?

I would include those ones:

DEVSD flv Flash Video (FLV) / Sorenson Spark / Sorenson H.263 DEV D gif GIF (Graphics Interchange Format) DEV D h261 H.261 DEVSDT h263 H.263 / H.263-1996 EV h263p H.263+ / H.263-1998 / H.263 version 2 DEVSD huffyuv Huffyuv / HuffYUV EV libtheora libtheora Theora EV libx264 libx264 H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10 EV libxvid libxvidcore MPEG-4 part 2 EV ljpeg Lossless JPEG DEV D mjpeg MJPEG (Motion JPEG) DEVSDT mpeg1video MPEG-1 video DEVSDT mpeg2video MPEG-2 video DEVSDT mpeg4 MPEG-4 part 2 DEVSD msmpeg4 MPEG-4 part 2 Microsoft variant version 3 DEVSD msmpeg4v1 MPEG-4 part 2 Microsoft variant version 1 DEVSD msmpeg4v2 MPEG-4 part 2 Microsoft variant version 2
I assume that ‘E’ means Encode abilities.

Anyway, my codec/formats output is longer:

Ok, maybe also include wmv1, wmv2 and zlib (lossless)?

Your output is longer because you haven’t filtered with E(ncode)V(video) :stuck_out_tongue:

It is fine but what’s zlib(lossless) used for?

you’re right. :wink:


nevermind, huffyuv is also lossless and it’s quite popular so there is no need for zlib.

I like genete’s list, and agree we should have wmv (1&2) there too (much as I hate it).

just my $0.02

I vote against wmv.
It is a really lousy, crappy and evilous format! It should mercifully sink into oblivion.

I’m also completely against wmv format and all evil closed stuff, but I think windows users would want it.

Does it work yet? Should we test it?

Unfortunately the changes involved on that new feature implies lots of files. He is reworking the changes with a new branch in a better way. We had to figure out a way to pass the render parameters (bitrate, codec) to frmo the tool (command line interface) to each module and to the studio to the module. It has to be a generic change and just particularized in ffmpeg. We would like use it for all targets (now and future).
So no working until now. Patience :wink:

<- the sound of pixelgeek holding his breath

Is h261 needed?

BTW, what about the names? should we have the same names or change them like for example libxvid -> xvid?
The bitrate for ffmpeg is given in kb/s and you have to put the k in the parameter: “-b 200k”. Should we ask for the plain number (cleaner) or with the k (more consistent with ffmpeg)?
The options are -vc for the codec and -vb for the bitrate. They are general flags, not directly related to ffmpeg. They could be reused for other target modules.

No opinion on h261 - who uses that? From wikipedia - “Design refinements introduced in later standardization efforts have resulted in significant improvements in compression capability relative to the H.261 design. This has resulted in H.261 becoming essentially obsolete…”

In general, I would vote for making the terms as user friendly as possible. Most windows users aren’t going to care about libxvid, they just want to create an AVI file. If k is required and assumed, it seems redundant and can be made cleaner. Likewise, hide the -vc, -vb flags and give the user specific codecs to pick from and an option to enter bitrate (or default it to something usable if omitted.)

Just my thoughts,


Then maybe better taking out h261.
I think you are talking about synfig studio. The studio won’t have such options or whatever but a drop down list with the codecs and a numerical field for the bitrate.
Anyway by the moment I’m with the tool.

What about implementing a filename extension - target video codec checking?
For example, if the output filename extension is mpg you can’t select libtheora video codec and synfig would output an error.
Do you think it’s useful that kind of checking?

PD: sorry for double post.

It has sense only if the file extension (which is sometimes directly related to the container type) doesn’t support that kind of codec. Most of modern containers (mov, avi) are capable to hold several video codecs so it will be restrictive in those cases.
See this for further references:
en.wikipedia.org/wiki/Comparison … er_formats
So I agree only with the extensions that have limited supported codecs :slight_smile: