FastFlix icon indicating copy to clipboard operation
FastFlix copied to clipboard

Output format selection

Open leonardyan opened this issue 5 years ago • 7 comments

Currently the output file selection box only supports *.mkv(though I can manually input a *.mp4 filename or so on, ignore the warning about output format mismatch and start encoding). Could we select output format in a GUI manner, within the support range of our shipped FFmpeg build?

leonardyan avatar Oct 26 '20 08:10 leonardyan

The reason why that doesn't exist yet is there is no programmatic way to know what containers support what formats (audio, video, subtitles and covers) with FFmpeg. I talked to a dev about it and it may be a feature coming down the pipeline eventually, but until then it's up to user discretion to know what they are doing if they don't use .mkv.

cdgriffith avatar Oct 26 '20 15:10 cdgriffith

Maybe we can decide which output container format can be chosen by user, based on the output stream format selected? To tell the truth I learn so little about these techs ;)

leonardyan avatar Oct 26 '20 17:10 leonardyan

I just began to understand your concern. I tried to convert a webm clip(with opus audio track) into an mp4 one. By default the opus audio stream was copied into mp4 container, so I heard nothing when playing the result on my phone. Converting audio into aac fixes that. Maybe the default mkv container doesn't have such problem.

leonardyan avatar Oct 27 '20 10:10 leonardyan

I took a look on how MediaCoder(another transcoding tool) handles this problem. First I chose container format mp4, then video format vp9, and it automatically changed container to webm. However, when I chose mp4 and then chose opus audio, webm container wasn't automatically selected. MP4 + opus combo causes problem when played on my phone. I guess it has a table of coder-container compatibility burnt in, though not very perfect.

leonardyan avatar Oct 27 '20 17:10 leonardyan

Yeah a big problem is not only what the converter (in this case FFmpeg) supports, but also what other devices support. MP4 has a rather limited scope of actual "allowed" codecs for audio and video, but most encoders support putting more into it. However, opus is a standard for MP4, so I'm unsure why that wouldn't work.

I also noticed FFmpeg has both opus and libopus and I don't know the difference personally.

cdgriffith avatar Oct 27 '20 17:10 cdgriffith

When changing the output, will the container actually change?

Galaxoid-333 avatar Jul 10 '22 23:07 Galaxoid-333

Yes, make sure to change the name / container last as there are a few different things that will re-generate it automatically (like changing encoders.)

You should get a warning message like shown below, and just click on the red "Continue Anyways" and it will put it in the new container format.

Screenshot 2022-07-10 191049

cdgriffith avatar Jul 11 '22 00:07 cdgriffith

Added in 5.2.0!

cdgriffith avatar Mar 09 '23 02:03 cdgriffith