[FFmpeg-user] How to download and transcode video stream to mp4 and save the TS stream to file at the same time?

Bo Berglund bo.berglund at gmail.com
Mon Sep 30 08:55:54 EEST 2024


On Mon, 30 Sep 2024 09:49:34 +0530, Gyan Doshi <ffmpeg at gyani.pro> wrote:

>
>
>On 2024-09-30 01:29 am, Bo Berglund wrote:
>> I have created a script that downloads Internet video streams (basically news
>> programs) and transcodes to mp4 format with a fixed windows size.
>> As soon as the video stream recording ends the mp4 file can be played.
>>
>> I wonder if there is a way to let ffmpeg do two things at the same time:
>> - download as now but save the stream to a TS formatted file and:
>> - transcode to the mp4 format into a different output file
>>
>> This would make it possible to start viewing the downloaded file in TS format
>> while the real output file remains unplayable until the download finishes and
>> the moov atom gets written.
>
>Three months ago, ffmpeg's mov/mp4 muxer added a movflags called 
>`hybrid_fragmented`
>
> From the doc description,
>
>"
>For recoverability - write the output file as a fragmented file. This 
>allows the intermediate file to be read while being written (in 
>particular, if the writing process is aborted uncleanly). When writing 
>is finished, the file is converted to a regular, non-fragmented file, 
>which is more compatible and allows easier and quicker seeking.
>
>If writing is aborted, the intermediate file can manually be remuxed to 
>get a regular, non-fragmented file of what had been written into the 
>unfinished file.
>"

Sounds like what I have been looking for all along!
Could you provide the ffmpeg version where this is available?

Unfortunately, this is what I get when checking versions on my main Ubuntu
20.04.6 LTS server box where the downloads happen:

$ apt policy ffmpeg
ffmpeg:
  Installed: 7:4.3.2-0york0~18.04
  Candidate: 7:4.3.2-0york0~18.04

I guess version 7:4.3.2 is not good enough, so how can I upgrade on my Ubuntu
20.04.6 LTS box?

On another Linux laptop running Ubuntu 22.04.5 LTS I get this:

$ apt policy ffmpeg
ffmpeg:
  Installed: 7:4.4.2-0ubuntu0.22.04.1+esm5
  Candidate: 7:4.4.2-0ubuntu0.22.04.1+esm5

And on a Linux-Mint desktop I have an even older vcersion:

$ apt policy ffmpeg
ffmpeg:
  Installed: 7:4.2.7-0ubuntu0.1
  Candidate: 7:4.2.7-0ubuntu0.1

Lastly on a Raspberry-Pi5 box I have:

$ apt policy ffmpeg
ffmpeg:
  Installed: 8:5.1.5-0+rpt1+deb12u1
  Candidate: 8:5.1.6-0+deb12u1+rpt1

Here I see the main version stepped up to 8!
Does this version contain the wanted feature?

However, download on this box is a bit iffy in general, probably because of the
RPi5 being a less capable device...

The other  servers are on Lenovo or HP hardware...

Basic install question on Linux:

If one wants to get to the latest version of ffmpeg and it is not provided by
the Linux distribution used, how can one upgrade to it?


-- 
Bo Berglund
Developer in Sweden



More information about the ffmpeg-user mailing list