Skip to content

Video: Remove deprecated FFmpeg -vsync vfr command flag #3659

Closed
@alxjsn

Description

@alxjsn

I have an Intel ARC380 video card which uses the DG2 platform. I tried to set up transcoding to work with it but quickly realized that it wouldn't work due to an older version of FFMpeg being used. The version installed is the latest on Ubuntu Lunar so it would require another version of Ubuntu or updated static binaries to be downloaded. I opted for the later to test this out, but realized that some changes may be required in Photoprism as well.

photoprism_1  | time="2023-08-21T20:48:13Z" level=warning msg="h264_vaapi: failed to transcode 2023/04/20230421_015535_E6ECC174.mov [5.484633ms]"
photoprism_1  | time="2023-08-21T20:48:13Z" level=info msg="libx264: transcoding 2023/04/20230421_015535_E6ECC174.mov to avc"
photoprism_1  | time="2023-08-21T20:48:13Z" level=debug msg="ffmpeg version 6.0-static https://johnvansickle.com/ffmpeg/  Copyright (c) 2000-2023 the FFmpeg developers
  built with gcc 8 (Debian 8.3.0-6)
  configuration: --enable-gpl --enable-version3 --enable-static --disable-debug --disable-ffplay --disable-indev=sndio --disable-outdev=sndio --cc=gcc --enable-fontconfig --enable-frei0r --enable-gnutls --enable-gmp --enable-libgme --enable-gray --enable-libaom --enable-libfribidi --enable-libass --enable-libvmaf --enable-libfreetype --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-librubberband --enable-libsoxr --enable-libspeex --enable-libsrt --enable-libvorbis --enable-libopus --enable-libtheora --enable-libvidstab --enable-libvo-amrwbenc --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2 --enable-libdav1d --enable-libxvid --enable-libzvbi --enable-libzimg
  libavutil      58.  2.100 / 58.  2.100
  libavcodec     60.  3.100 / 60.  3.100
  libavformat    60.  3.100 / 60.  3.100
  libavdevice    60.  1.100 / 60.  1.100
  libavfilter     9.  3.100 /  9.  3.100
  libswscale      7.  1.100 /  7.  1.100
  libswresample   4. 10.100 /  4. 10.100
  libpostproc    57.  1.100 / 57.  1.100
-vsync is deprecated. Use -fps_mode
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '/photoprism/originals/2023/04/20230421_015535_E6ECC174.mov':
  Metadata:
    major_brand     : qt  
    minor_version   : 0
    compatible_brands: qt  
    creation_time   : 2023-04-21T01:55:35.000000Z
    com.apple.quicktime.location.accuracy.horizontal: 35.000000
    com.apple.quicktime.location.ISO6709: [REDACTED]/
    com.apple.quicktime.make: Apple
    com.apple.quicktime.model: iPhone 8
    com.apple.quicktime.software: 16.4.1
    com.apple.quicktime.creationdate: 2023-04-20T20:55:35-0500
  Duration: 00:00:30.43, start: 0.000000, bitrate: 7854 kb/s
  Stream #0:0[0x1](und): Video: hevc (Main) (hvc1 / 0x31637668), yuv420p(tv, bt709), 1920x1080, 7688 kb/s, 30.01 fps, 30 tbr, 600 tbn (default)
    Metadata:
      creation_time   : 2023-04-21T01:55:35.000000Z
      handler_name    : Core Media Video
      vendor_id       : [0][0][0][0]
      encoder         : HEVC
  Stream #0:1[0x2](und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, mono, fltp, 96 kb/s (default)
    Metadata:
      creation_time   : 2023-04-21T01:55:35.000000Z
      handler_name    : Core Media Audio
      vendor_id       : [0][0][0][0]
  Stream #0:2[0x3](und): Data: none (mebx / 0x7862656D), 0 kb/s (default)
    Metadata:
      creation_time   : 2023-04-21T01:55:35.000000Z
      handler_name    : Core Media Metadata
  Stream #0:3[0x4](und): Data: none (mebx / 0x7862656D), 13 kb/s (default)
    Metadata:
      creation_time   : 2023-04-21T01:55:35.000000Z
      handler_name    : Core Media Metadata
  Stream #0:4[0x5](und): Data: none (mebx / 0x7862656D), 38 kb/s (default)
    Metadata:
      creation_time   : 2023-04-21T01:55:35.000000Z
      handler_name    : Core Media Metadata
[vost#0:0/libx264 @ 0x61ca640] One of -r/-fpsmax was specified together a non-CFR -vsync/-fps_mode. This is contradictory.
"
photoprism_1  | time="2023-08-21T20:48:13Z" level=warning msg="libx264: failed to transcode 2023/04/20230421_015535_E6ECC174.mov [5.671157ms]"
photoprism_1  | time="2023-08-21T20:48:13Z" level=error msg="video: failed to transcode 2023/04/20230421_015535_E6ECC174.mov"
photoprism_1  | time="2023-08-21T20:48:13Z" level=debug msg="server: GET /api/v1/videos/a6ce0d4279b23ff98099fe80cc577407e03f90a3/3ug1kcaz/avc (206) [308.307926ms]"

I used the latest binary from here to test this: https://johnvansickle.com/ffmpeg/

It seems like some changes occurred between 5.x and 6.x which Photoprism has to account for so I wasn't able to fully test that transcoding works with my card. I do know that other applications that use the newer version of FFMpeg transcode successfully using my new video card.

Reference: https://github.com/intel/cartwheel-ffmpeg

Metadata

Metadata

Assignees

Labels

enhancementEnhancement or improvement of an existing featurereleasedAvailable in the stable releasevideoVideo Formats, Transcoding, FFmpeg, Streaming & Co

Type

No type

Projects

Status

Release 🌈

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions