[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