MartinEesmaa / VVCEasy

VVCEasy is that you don't have to compile or/and coding to encode VVC (known as Versatile Video Codec). Simple. Easy. Encode. Decode
https://martineesmaa.org/en/vvceasy
MIT License
145 stars 15 forks source link

ffplay coredump in libavcodec/parser.c:168 after play vvc stream #33

Closed yangchar closed 9 months ago

yangchar commented 9 months ago
  1. follow the steps to build ffmpeg FFMPEGVVC.md
  2. ffplay_g vvc_8b_bt709-ClosedGOP-3840x2160-24fps-60s-4Mbps.mp4
  3. how to get the streams
  4. i did't enable-libxml2 because configure ERROR: libxml-2.0 not found using pkg-config

ffplay_g vvc_8b_bt709-ClosedGOP-3840x2160-24fps-60s-4Mbps.mp4 ffplay version git-2023-03-04-b4388ed Copyright (c) 2003-2021 the FFmpeg developers built with gcc 9 (Ubuntu 9.4.0-1ubuntu1~20.04.2) configuration: --enable-libfdk-aac --enable-libvvenc --enable-libvvdec --enable-static --enable-pic --pkg-config-flags=--static --enable-sdl2 libavutil 56. 72.100 / 56. 72.100 libavcodec 58.135.100 / 58.135.100 libavformat 58. 77.100 / 58. 77.100 libavdevice 58. 14.100 / 58. 14.100 libavfilter 7.111.100 / 7.111.100 libswscale 5. 10.100 / 5. 10.100 libswresample 3. 10.100 / 3. 10.100 [libvvdec @ 0x7f2138003640] extra data is not supported yet.f=0/0
Assertion index > -0x20000000 failed at libavcodec/parser.c:168

MartinEesmaa commented 9 months ago

Hi @yangchar, I looked your number steps.

You have to click link build script in FFMPEGVVC.md.

Make sure your libxml2 is installed on your computer example (/usr/local). I recommend if you want to install correctly on your machine. Here's a short code of installation libxml2 on Linux machine:

git clone --depth=1 https://github.com/gnome/libxml2
cd libxml2
autoreconf -if
./configure --prefix=/usr/local --enable-static --disable-shared
sudo make install -j $nproc

or you can install on Ubuntu package:

sudo apt install libxml2-dev

libxml2 requires for DASH streams to demux and play a sample VVC video with seperate AAC audio file, maybe GOP Closed video.

If you have any question or issues, feel free to reply with me. :)

Thank you!

yangchar commented 9 months ago

Hi Martin Can you upload ffmpeg&ffplay binary files for linux ubuntu? i can't build success; Or you can send email to me, thank you. lsb_release -a LSB Version: core-11.1.0ubuntu2-noarch:printing-11.1.0ubuntu2-noarch:security-11.1.0ubuntu2-noarch Distributor ID: Ubuntu Description: Ubuntu 20.04.6 LTS Release: 20.04 Codename: focal

-- The C compiler identification is GNU 9.4.0 -- The CXX compiler identification is GNU 9.4.0 -- Check for working C compiler: /usr/bin/cc -- Check for working C compiler: /usr/bin/cc -- works -- Detecting C compiler ABI info -- Detecting C compiler ABI info - done -- Detecting C compile features -- Detecting C compile features - done -- Check for working CXX compiler: /usr/bin/c++ -- Check for working CXX compiler: /usr/bin/c++ -- works -- Detecting CXX compiler ABI info -- Detecting CXX compiler ABI info - done -- Detecting CXX compile features -- Detecting CXX compile features - done -- Performing Test JPEGXL_EMSCRIPTEN -- Performing Test JPEGXL_EMSCRIPTEN - Failed -- CMAKE_SYSTEM_PROCESSOR is x86_64 -- Performing Test CXX_FUZZERS_SUPPORTED -- Performing Test CXX_FUZZERS_SUPPORTED - Failed -- Performing Test CXX_CONSTRUCTOR_ALIASES_SUPPORTED -- Performing Test CXX_CONSTRUCTOR_ALIASES_SUPPORTED - Failed -- Performing Test CXX_MACRO_PREFIX_MAP -- Performing Test CXX_MACRO_PREFIX_MAP - Success -- Performing Test CXX_NO_RTTI_SUPPORTED -- Performing Test CXX_NO_RTTI_SUPPORTED - Success -- Found PkgConfig: /usr/bin/pkg-config (found version "0.29.1") -- tcmalloc version -- tcmalloc 2.8.0 disabled due to https://github.com/gperftools/gperftools/issues/1204 -- Performing Test JXL_HWY_DISABLED_TARGETS_FORCED -- Performing Test JXL_HWY_DISABLED_TARGETS_FORCED - Failed -- Compiled IDs C:GNU, C++:GNU -- Disabled AVX512 (set JPEGXL_ENABLE_AVX512 to enable it) -- Disabled AVX512_ZEN4 (set JPEGXL_ENABLE_AVX512_ZEN4 to enable it) -- Looking for pthread.h -- Looking for pthread.h - found -- Performing Test CMAKE_HAVE_LIBC_PTHREAD -- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Failed -- Check if compiler accepts -pthread -- Check if compiler accepts -pthread - yes -- Found Threads: TRUE
-- Performing Test ATOMICS_LOCK_FREE_INSTRUCTIONS -- Performing Test ATOMICS_LOCK_FREE_INSTRUCTIONS - Success -- Could NOT find HWY (missing: HWY_LIBRARY HWY_INCLUDE_DIR) (Required is at least version "1.0.7") CMake Error at third_party/CMakeLists.txt:36 (message): Highway library (hwy) not found. Install libhwy-dev or download it to third_party/highway from https://github.com/google/highway . Highway is required to build JPEG XL. You can run /home/cambricon/ffmpeg-vvc/libjxl/deps.sh to download this dependency.

-- Configuring incomplete, errors occurred! See also "/home/cambricon/ffmpeg-vvc/libjxl/build/CMakeFiles/CMakeOutput.log". See also "/home/cambricon/ffmpeg-vvc/libjxl/build/CMakeFiles/CMakeError.log".

MartinEesmaa commented 9 months ago

Hi @yangchar, I can build Linux static of FFmpeg for later, but libjxl, you can see the message in CMake log following like this:

You can run
/home/cambricon/ffmpeg-vvc/libjxl/deps.sh to download this dependency.

Make sure if that any case to get Ubuntu package:

sudo apt install libbrotli-dev

I'll make easy little bit for you, here is a quick libjxl build, making sure case is installed packages:

sudo apt install build-essential cmake nasm autoconf pkg-config \
python3-setuptools ninja-build python3-pip libtool git wget xxd -y && \
sudo pip3 install meson
git clone --depth=1 https://github.com/libjxl/libjxl
sed -i 's/-lm/-lm -lstdc++/g' libjxl/lib/jxl/libjxl.pc.in libjxl/lib/threads/libjxl_threads.pc.in
git -C libjxl submodule update --init --recursive --depth 1 --recommend-shallow
mkdir libjxl/build
cd libjxl/build
cmake -DCMAKE_BUILD_TYPE=Release -DBUILD_TESTING=OFF -DBUILD_SHARED_LIBS=OFF \
-DJPEGXL_ENABLE_BENCHMARK=OFF -DJPEGXL_ENABLE_PLUGINS=ON \
-DJPEGXL_ENABLE_MANPAGES=OFF -DJPEGXL_FORCE_SYSTEM_BROTLI=ON \
-DJPEGXL_FORCE_SYSTEM_GTEST=ON -DCMAKE_INSTALL_PREFIX=$PREFIX .. -G Ninja
sudo ninja install
cd ../../

While I'm busy, you can have a look my Linux build script: https://github.com/MartinEesmaa/VVCEasy/blob/master/libvvdecffmpeg.sh

And of my FFmpeg Btbn forked repository, but you have to build image first of nonfree target and then FFmpeg nonfree: https://github.com/MartinEesmaa/FFmpeg-Builds

yangchar commented 9 months ago

Hi, Martin

./ffmpeg-vvc/libjxl/deps.sh fatal: 不是 git 仓库(或者任何父目录):.git Downloading third_party/brotli version 36533a866ed1ca4b75cf049f4521e4ec5fe24727... % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0 100 499k 0 499k 0 0 257k 0 --:--:-- 0:00:01 --:--:-- 813k Downloading third_party/highway version ba0900a4957b929390ab73827235557959234fea... % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0 100 2007k 0 2007k 0 0 648k 0 --:--:-- 0:00:03 --:--:-- 1115k Downloading third_party/sjpeg version e5ab13008bb214deb66d5f3e17ca2f8dbff150bf... % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0 100 2423k 0 2423k 0 0 469k 0 --:--:-- 0:00:05 --:--:-- 613k Downloading third_party/skcms version b25b07b4b07990811de121c0356155b2ba0f4318... % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 9804k 0 9804k 0 0 1049k 0 --:--:-- 0:00:09 --:--:-- 1112k Downloading third_party/zlib version cacf7f1d4e3d44d871b605da3b647f07d718623f... % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0 100 629k 0 629k 0 0 330k 0 --:--:-- 0:00:01 --:--:-- 1148k Downloading third_party/libpng version a40189cf881e9f0db80511c382292a5604c3c3d1... % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0 100 1473k 0 1473k 0 0 559k 0 --:--:-- 0:00:02 --:--:-- 1144k Downloading third_party/libjpeg-turbo version TURBO... % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0 100 14 100 14 0 0 10 0 0:00:01 0:00:01 --:--:-- 27

gzip: stdin: not in gzip format tar: Child returned status 1 tar: Error is not recoverable: exiting now

MartinEesmaa commented 9 months ago

Hi @yangchar, here is commit released of Linux build: https://github.com/MartinEesmaa/VVCEasy/commit/7ef85f00f874195f6169e4ea708df66d46b9f277