Commit Graph

27 Commits

Author SHA1 Message Date
Josh Allmann bd7f8b0760 install_ffmpeg: Compile in more stuff for AI 2024-08-09 12:43:42 -07:00
Josh Allmann d9c78b62ef Update FFmpeg to 7.0.1 (#406)
* Port install_ffmpeg.sh from go-livepeer

* Update ffmpeg and nv-codec-headers versions.

* Use local install_ffmpeg.sh in github CI

* Update transcoder for ffmpeg 7.0.1

* Update tests to be compatible with ffmpeg7 binary

* Fix FPS passthrough

* Set the encoder timebase using AVCodecContext.framerate instead of
  the decoder's AVCodecContext.time_base.

  The use of AVCodecContext.time_base is deprecated for decoding.
  See https://ffmpeg.org/doxygen/3.3/structAVCodecContext.html#ab7bfeb9fa5840aac090e2b0bd0ef7589

* Adjust the packet timebase as necessary for FPS pass through
  to match the encoder's expected timebase. For filtergraphs using
  FPS adjustment, the filtergraph output timebase will match the
  framerate (1 / framerate) and the encoder is configured for the same.

  However, for FPS pass through, the filtergraph's output timebase
  will match the input timebase (since there is no FPS adjustment)
  while the encoder uses the timebase detected from the decoder's
  framerate. Since the input timebase does not typically match the FPS
  (eg 90khz for mpegts vs 30fps), we need to adjust the packet timestamps
  (in container timebase) to the encoder's expected timebase.

* For the specific case of FPS passthrough, preserve the original PTS
  as much as possible since we are trying to re-encode existing frames
  one-to-one. Use the opaque field for this, since it is already being
  populated with the original PTS to detect sentinel packets
  during flushing.

  Without this, timestamps can be slightly "squashed" down when
  rescaling output packets to the muxer's timebase, due to the loss of
  precision (eg, demuxer 90khz -> encoder 30hz -> muxer 90khz)
2024-07-10 20:45:24 -07:00
Ivan Poleshchuk 187149f0fe lpms: replace install_ffmpeg.sh with a simple proxy to go-livepeer's version 2022-03-21 15:28:48 +02:00
JamesWanglf a6bbd24a86 Uncomment *_DetectionFreq tests (#289)
* Uncomment *_DetectionFreq tests

* use tensorflow only for cpu because CI does not have GPU

* TF GPU support is working for both of GPU and CPU device
2022-01-28 17:54:13 +02:00
Oscar 5c05cbbeb5 fix middle pixel format changing issue (#287)
In HW transcoding, demuxer is opened once and used, so it is necessary to check whether the input pixel format does not change in the middle. If a change is detected, free the input_ctx and reopen the demuxer again.
2022-01-05 09:34:02 +08:00
JamesWanglf 645a9eed6a remove unnecessary option 2021-12-23 17:56:02 -05:00
JamesWanglf 8754c114ea fix ffmpeg to return "No such device" error 2021-12-23 14:42:38 -05:00
JamesWanglf 7664e2b64e add script to install nv-codec-headers 2021-12-16 04:24:38 -05:00
JamesWanglf 956126435e modify install_ffmpeg.sh to run GPU test 2021-12-13 08:59:40 +00:00
Ivan Tivonenko 644122186d Do not link GnuTLS library 2021-12-09 00:10:36 +02:00
Oscar 46f7030c62 install_ffmpeg: update ffmpeg with signature_cuda memleak fix 2021-11-18 19:21:13 +05:30
Ivan Poleshchuk 96961a954b Bump ffmpeg commit 2021-11-12 17:18:53 +05:00
Ivan Poleshchuk 7ddb935347 ffmpeg: pass device id parameter to dnn filter (#264) 2021-09-27 19:52:29 +05:30
Oscar 6ccecaaad7 ffmpeg: add signature_cuda filter (#263) 2021-09-24 18:21:13 +05:30
Jai Luthra 60d071ce55 install_ffmpeg: update to latest commit in FFmpeg:livepeer 2021-09-13 17:12:01 +05:30
Oscar e0a6002c84 implementation go signature comparison function (#253)
implementation go signature create and comparison function
2021-08-16 22:01:31 +08:00
Jai Luthra 364e5f43f8 install_ffmpeg: Upgrade ffmpeg to 4.4
On top of v4.4, the new branch contains some critical fixes needed for
our transcoding pipeline - like flushing buffers of NVENC.

It also contains a refactored scene classification DNN filter:
https://github.com/livepeer/FFmpeg/pull/9
2021-08-06 18:15:05 +05:30
Oscar 4e4a3a87d2 ffmpeg/detector: Add support for content detection
Co-authored-by: Jai Luthra <me@jailuthra.in>
2021-06-23 18:03:28 +05:30
Yondon Fu 6e5c36facc install_ffmpeg: Use livepeer/ffmpeg@1fdf06e 2021-05-04 22:17:49 -04:00
Jai Luthra 8428a89292 install_ffmpeg: Use livepeer fork of FFmpeg 2021-05-04 22:17:49 -04:00
Josh Allmann db43fc7fe0 install_ffmpeg: Move back to ffmpeg git.
The nvenc fix needed to support flushing is now in ffmpeg master.
2020-01-10 16:45:55 +00:00
Josh Allmann ec0baf1f3e ffmpeg: Install Livepeer-version ffmpeg.
Needed for specialized nvenc flush API.
2019-11-21 14:30:52 -08:00
Ivan Tivonenko 1f9bbc615c update install_ffmpeg.sh to be same as in go-livepeer 2019-02-27 13:34:13 -08:00
Josh Allmann f65b4655c7 ffmpeg: Enable gnutls for HTTPS. 2018-10-25 23:56:28 -07:00
Josh Allmann f883026831 install_ffmpeg: Enable everything for Circle. 2018-05-02 11:03:01 -07:00
Josh Allmann 5774f63c60 install_ffmpeg: Synchronize with goclient. 2018-04-26 21:53:45 -07:00
Josh Allmann b93a657025 circle: Build FFmpeg. 2018-01-31 09:12:07 -08:00