fraunhoferhhi / vvenc

VVenC, the Fraunhofer Versatile Video Encoder
https://www.hhi.fraunhofer.de/en/departments/vca/technologies-and-solutions/h266-vvc.html
BSD 3-Clause Clear License
942 stars 170 forks source link

Player suitable for .266 file encoded by vevcapp #140

Closed asqarkababi closed 2 years ago

asqarkababi commented 2 years ago

After Encoding a video file from mp4 to 266 which Player is suitable for Playing this kind of Videos if i made a mistake i would be very Grateful for your help and appreciate it Bild_2022-02-17_122119

1div0 commented 2 years ago

First option: vvdecapp --bitstream R266.266 --y4m --output - | ffplay -i -

Second option: https://github.com/tbiat/FFmpeg

asqarkababi commented 2 years ago

First option: vvdecapp --bitstream R266.266 --y4m --output - | ffplay -i -

Second option: https://github.com/tbiat/FFmpeg

Screenshot 2022-02-19 101617

Thank your for your reply after i installed ffmpeg on Windows Linux Subsystem(WSL) i get an error that the file or directory doesnt exist could you help me on this matter Thank you

adamjw24 commented 2 years ago

It seems you didn't include VVdeC support into this. Please have a look at the accompanying paper: https://dl.acm.org/doi/10.1145/3474085.3478320

Make sure when building the FFmpeg from https://github.com/tbiat/FFmpeg you enable the required options (--enable-libvvdec).

Also, this FFmpeg only contains VVC demuxing, you are trying to do muxing. You'd need to build GPAC (built agaisnt this FFmpeg installation), and mux using MP4box.

See more info in Slide 12 of the paper presentation. grafik

There is also the experimental player by Bitmovin (https://github.com/bitmovin/vvDecPlayer), its more suited towards playing around and demos than actually watching videos.

Other than that, there aren't any suitable players. Please ask around with the developers of the players (VLC, FFmpeg, Gstreamer, etc). I'm very curious myself.

adamjw24 commented 2 years ago

Last but not least, the easiest way to watch VVC today is actually to build VVdeC using Emscripten and drop the binaries into vvcWebPlayer. There is a python script in there which starst a local server. Please mind that running VVdeC in a browser includes a performance hit of around 50% compared to native.

asqarkababi commented 2 years ago

Thank you so much for your answers are the above codes for windows or for Linux or MacOS ? sorry for my Questions im still a beginner in this field

adamjw24 commented 2 years ago

FFmpeg is available for all systems. The web player will work with Chroma, Edge and Firefox, but not Safari. Don't know about vvDecPlayer.

asqarkababi commented 2 years ago

FFmpeg is not working for me i dont know what im doing wrong

Screenshot 2022-02-20 181730
asqarkababi commented 2 years ago

libvvdec, pic, openssl and libxml2 are not available to get enabled in my version of FFMPEG on Windows does it have another name and how is the command on Windows because this one is not working and i cant enable the options

Screenshot 2022-02-20 201548 Screenshot 2022-02-20 201931
adamjw24 commented 2 years ago

You need to clone FFmpeg from the tbiat/FFmpeg repo, build it on your system and use the resulting executable. You cannot use the FFmpeg thats already there on your system.

asqarkababi commented 2 years ago

I will try it out thank you

asqarkababi commented 2 years ago

Thank you very much for your help FFMPEG works perfect now on my Computer so we can close this issue now

MartinEesmaa commented 2 years ago

Excuse me, @adamjw24. I have a problem for building tbiat/FFmpeg. I'm using MSYS2 x64. I'm building vvdec for MinGW and after building, I tried to configure in tbiat/FFmpeg, but I got a error and here is my full log:

Update, I looked at final lines of config.log:

require_pkg_config libvvdec libvvdec >= 1.1.0 vvdec/vvdec.h vvdec_get_version
check_pkg_config libvvdec libvvdec >= 1.1.0 vvdec/vvdec.h vvdec_get_version
test_pkg_config libvvdec libvvdec >= 1.1.0 vvdec/vvdec.h vvdec_get_version
pkg-config --exists --print-errors libvvdec >= 1.1.0
Package libvvdec was not found in the pkg-config search path.
Perhaps you should add the directory containing `libvvdec.pc'
to the PKG_CONFIG_PATH environment variable
Package 'libvvdec', required by 'virtual:world', not found
ERROR: libvvdec >= 1.1.0 not found using pkg-config

Full FFBUILD/CONFIG.LOG log file: https://pastebin.com/R2qqqKwV

marti@LAPTOP-HM70RGB0 MINGW64 ~/vvdec/build
$ cmake ..
-- Building for: Ninja
-- The C compiler identification is GNU 11.2.0
-- The CXX compiler identification is GNU 11.2.0
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: C:/msys64/mingw64/bin/cc.exe - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: C:/msys64/mingw64/bin/c++.exe - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- CMAKE_MODULE_PATH: updating module path to: C:/msys64/home/marti/vvdec/cmake/modules
-- Performing Test SUPPORTED_Werror_unused_command_line_argument
-- Performing Test SUPPORTED_Werror_unused_command_line_argument - Failed
-- Performing Test SUPPORTED_msse4_1
-- Performing Test SUPPORTED_msse4_1 - Success
-- Performing Test SUPPORTED_msse2
-- Performing Test SUPPORTED_msse2 - Success
-- Performing Test SUPPORTED_mavx
-- Performing Test SUPPORTED_mavx - Success
-- Performing Test HAVE_INTRIN_mm_storeu_si16
-- Performing Test HAVE_INTRIN_mm_storeu_si16 - Success
-- Performing Test HAVE_INTRIN_mm_storeu_si32
-- Performing Test HAVE_INTRIN_mm_storeu_si32 - Success
-- Performing Test HAVE_INTRIN_mm_storeu_si64
-- Performing Test HAVE_INTRIN_mm_storeu_si64 - Success
-- Performing Test HAVE_INTRIN_mm_loadu_si32
-- Performing Test HAVE_INTRIN_mm_loadu_si32 - Success
-- Performing Test HAVE_INTRIN_mm_loadu_si64
-- Performing Test HAVE_INTRIN_mm_loadu_si64 - Success
-- Performing Test HAVE_INTRIN_mm256_zeroupper
-- Performing Test HAVE_INTRIN_mm256_zeroupper - Success
-- Looking for pthread.h
-- Looking for pthread.h - found
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Success
-- Found Threads: TRUE
-- Performing Test SUPPORTED_mxsave
-- Performing Test SUPPORTED_mxsave - Success
-- Performing Test SUPPORTED_msse4_2
-- Performing Test SUPPORTED_msse4_2 - Success
-- Performing Test SUPPORTED_mavx2
-- Performing Test SUPPORTED_mavx2 - Success
-- Some bitstream files are missing.
--   If you want to run tests, reconfigure with -DVVDEC_ENABLE_BITSTREAM_DOWNLOAD=ON
--   (or using top level Makefile: make test enable-bitstream-download=1)
-- Configuring done
-- Generating done
-- Build files have been written to: C:/msys64/home/marti/vvdec/build

marti@LAPTOP-HM70RGB0 MINGW64 ~/vvdec/build
$ cmake --build . --config Release
[1/98] Building CXX object source/Lib/vvdec/CMakeFiles/vvdec.dir/wasm_bindings.cpp.obj
[2/98] Building CXX object source/Lib/vvdec/CMakeFiles/vvdec.dir/__/CommonLib/x86/CommonDefX86.cpp.obj
[3/98] Building CXX object source/Lib/vvdec/CMakeFiles/vvdec.dir/__/CommonLib/BitStream.cpp.obj
[4/98] Building CXX object source/Lib/vvdec/CMakeFiles/vvdec.dir/__/CommonLib/x86/sse41/RdCost_sse41.cpp.obj
[5/98] Building CXX object source/Lib/vvdec/CMakeFiles/vvdec.dir/__/CommonLib/ChromaFormat.cpp.obj
[6/98] Building CXX object source/Lib/vvdec/CMakeFiles/vvdec.dir/__/CommonLib/x86/sse41/Buffer_sse41.cpp.obj
[7/98] Building CXX object source/Lib/vvdec/CMakeFiles/vvdec.dir/__/CommonLib/x86/sse41/Picture_sse41.cpp.obj
[8/98] Building CXX object source/Lib/vvdec/CMakeFiles/vvdec.dir/__/CommonLib/x86/sse41/Quant_sse41.cpp.obj
[9/98] Building CXX object source/Lib/vvdec/CMakeFiles/vvdec.dir/__/CommonLib/x86/sse41/LoopFilter_sse41.cpp.obj
[10/98] Building CXX object source/Lib/vvdec/CMakeFiles/vvdec.dir/__/CommonLib/InterpolationFilter.cpp.obj
[11/98] Building CXX object source/Lib/vvdec/CMakeFiles/vvdec.dir/__/CommonLib/x86/sse41/InterpolationFilter_sse41.cpp.obj
[12/98] Building CXX object source/Lib/vvdec/CMakeFiles/vvdec.dir/__/CommonLib/x86/InitX86.cpp.obj
[13/98] Building CXX object source/Lib/vvdec/CMakeFiles/vvdec.dir/__/CommonLib/x86/sse41/IntraPred_sse41.cpp.obj
[14/98] Building CXX object source/Lib/vvdec/CMakeFiles/vvdec.dir/__/CommonLib/ContextModelling.cpp.obj
[15/98] Building CXX object source/Lib/vvdec/CMakeFiles/vvdec.dir/__/CommonLib/Buffer.cpp.obj
[16/98] Building CXX object source/Lib/vvdec/CMakeFiles/vvdec.dir/__/CommonLib/x86/sse41/InterPred_sse41.cpp.obj
[17/98] Building CXX object source/Lib/vvdec/CMakeFiles/vvdec.dir/__/CommonLib/CodingStructure.cpp.obj
[18/98] Building CXX object source/Lib/vvdec/CMakeFiles/vvdec.dir/__/CommonLib/AdaptiveLoopFilter.cpp.obj
[19/98] Building CXX object source/Lib/vvdec/CMakeFiles/vvdec.dir/__/CommonLib/x86/sse41/AdaptiveLoopFilter_sse41.cpp.obj
[20/98] Building CXX object source/Lib/vvdec/CMakeFiles/vvdec.dir/__/CommonLib/RdCost.cpp.obj
[21/98] Building CXX object source/Lib/vvdec/CMakeFiles/vvdec.dir/__/CommonLib/MatrixIntraPrediction.cpp.obj
[22/98] Building CXX object source/Lib/vvdec/CMakeFiles/vvdec.dir/__/CommonLib/Contexts.cpp.obj
[23/98] Building CXX object source/Lib/vvdec/CMakeFiles/vvdec.dir/__/CommonLib/Mv.cpp.obj
[24/98] Building CXX object source/Lib/vvdec/CMakeFiles/vvdec.dir/__/CommonLib/InterPrediction.cpp.obj
[25/98] Building CXX object source/Lib/vvdec/CMakeFiles/vvdec.dir/__/CommonLib/IntraPrediction.cpp.obj
[26/98] Building CXX object source/Lib/vvdec/CMakeFiles/vvdec.dir/__/CommonLib/RomLFNST.cpp.obj
[27/98] Building CXX object source/Lib/vvdec/CMakeFiles/vvdec.dir/__/CommonLib/PicListManager.cpp.obj
[28/98] Building CXX object source/Lib/vvdec/CMakeFiles/vvdec.dir/__/CommonLib/ParameterSetManager.cpp.obj
[29/98] Building CXX object source/Lib/vvdec/CMakeFiles/vvdec.dir/__/CommonLib/RomTr.cpp.obj
[30/98] Building CXX object source/Lib/vvdec/CMakeFiles/vvdec.dir/__/CommonLib/LoopFilter.cpp.obj
[31/98] Building CXX object source/Lib/vvdec/CMakeFiles/vvdec.dir/__/CommonLib/PicYuvMD5.cpp.obj
[32/98] Building CXX object source/Lib/vvdec/CMakeFiles/vvdec.dir/__/CommonLib/Quant.cpp.obj
[33/98] Building CXX object source/Lib/vvdec/CMakeFiles/vvdec.dir/__/CommonLib/StatCounter.cpp.obj
[34/98] Building CXX object source/Lib/vvdec/CMakeFiles/vvdec.dir/__/CommonLib/Picture.cpp.obj
[35/98] Building CXX object source/Lib/vvdec/CMakeFiles/vvdec.dir/__/CommonLib/Rom.cpp.obj
[36/98] Building CXX object source/Lib/vvdec/CMakeFiles/vvdec.dir/__/CommonLib/Reshape.cpp.obj
[37/98] Building CXX object source/Lib/vvdec/CMakeFiles/vvdec.dir/__/CommonLib/SEI_internal.cpp.obj
[38/98] Building CXX object source/Lib/vvdec/CMakeFiles/vvdec.dir/__/DecoderLib/AnnexBread.cpp.obj
[39/98] Building CXX object source/Lib/vvdec/CMakeFiles/vvdec.dir/__/CommonLib/Unit.cpp.obj
[40/98] Building CXX object source/Lib/vvdec/CMakeFiles/vvdec.dir/__/CommonLib/TrQuant.cpp.obj
[41/98] Building CXX object source/Lib/vvdec/CMakeFiles/vvdec.dir/__/CommonLib/TrQuant_EMT.cpp.obj
[42/98] Building CXX object source/Lib/vvdec/CMakeFiles/vvdec.dir/__/CommonLib/Slice.cpp.obj
[43/98] Building CXX object source/Lib/vvdec/CMakeFiles/vvdec.dir/__/CommonLib/dtrace.cpp.obj
[44/98] Building CXX object source/Lib/vvdec/CMakeFiles/vvdec.dir/__/CommonLib/SampleAdaptiveOffset.cpp.obj
[45/98] Building CXX object source/Lib/vvdec/CMakeFiles/vvdec.dir/__/CommonLib/WeightPrediction.cpp.obj
[46/98] Building CXX object source/Lib/vvdec/CMakeFiles/vvdec.dir/__/CommonLib/UnitPartitioner.cpp.obj
[47/98] Building CXX object source/Lib/vvdec/CMakeFiles/vvdec.dir/__/DecoderLib/DecCu.cpp.obj
[48/98] Building CXX object source/Lib/vvdec/CMakeFiles/vvdec.dir/__/DecoderLib/NALread.cpp.obj
[49/98] Building CXX object source/Lib/vvdec/CMakeFiles/vvdec.dir/__/CommonLib/UnitTools.cpp.obj
[50/98] Building CXX object source/Lib/vvdec/CMakeFiles/vvdec.dir/__/DecoderLib/CABACReader.cpp.obj
[51/98] Building CXX object source/Lib/vvdec/CMakeFiles/vvdec.dir/__/DecoderLib/BinDecoder.cpp.obj
[52/98] Building CXX object source/Lib/vvdec/CMakeFiles/vvdec.dir/__/Utilities/ThreadPool.cpp.obj
[53/98] Building CXX object source/Lib/vvdec/CMakeFiles/vvdec.dir/__/DecoderLib/DecLib.cpp.obj
[54/98] Building CXX object source/Lib/vvdec/CMakeFiles/vvdec.dir/__/CommonLib/x86/sse41/Trafo_sse41.cpp.obj
[55/98] Building CXX object source/Lib/vvdec/CMakeFiles/vvdec.dir/__/DecoderLib/DecLibRecon.cpp.obj
[56/98] Building CXX object source/Lib/vvdec/CMakeFiles/vvdec.dir/__/DecoderLib/DecSlice.cpp.obj
[57/98] Building CXX object source/Lib/vvdec/CMakeFiles/vvdec.dir/__/DecoderLib/DecLibParser.cpp.obj
[58/98] Building CXX object source/Lib/vvdec/CMakeFiles/vvdec.dir/__/CommonLib/x86/sse42/InterpolationFilter_sse42.cpp.obj
[59/98] Building CXX object source/Lib/vvdec/CMakeFiles/vvdec.dir/__/DecoderLib/SEIread.cpp.obj
[60/98] Building CXX object source/Lib/vvdec/CMakeFiles/vvdec.dir/__/CommonLib/x86/sse42/InterPred_sse42.cpp.obj
[61/98] Building CXX object source/Lib/vvdec/CMakeFiles/vvdec.dir/vvdec.cpp.obj
[62/98] Building CXX object source/Lib/vvdec/CMakeFiles/vvdec.dir/__/CommonLib/x86/sse42/Buffer_sse42.cpp.obj
[63/98] Building CXX object source/Lib/vvdec/CMakeFiles/vvdec.dir/__/CommonLib/x86/sse41/SampleAdaptiveOffset_sse41.cpp.obj
[64/98] Building CXX object source/Lib/vvdec/CMakeFiles/vvdec.dir/__/CommonLib/x86/sse42/RdCost_sse42.cpp.obj
[65/98] Building CXX object source/Lib/vvdec/CMakeFiles/vvdec.dir/vvdecimpl.cpp.obj
[66/98] Building CXX object source/Lib/vvdec/CMakeFiles/vvdec.dir/__/DecoderLib/VLCReader.cpp.obj
[67/98] Building CXX object source/Lib/vvdec/CMakeFiles/vvdec.dir/__/CommonLib/x86/sse42/Quant_sse42.cpp.obj
[68/98] Building CXX object source/Lib/vvdec/CMakeFiles/vvdec.dir/__/CommonLib/x86/sse42/AdaptiveLoopFilter_sse42.cpp.obj
[69/98] Building CXX object source/Lib/vvdec/CMakeFiles/vvdec.dir/__/CommonLib/x86/sse42/Trafo_sse42.cpp.obj
[70/98] Building CXX object source/Lib/vvdec/CMakeFiles/vvdec.dir/__/CommonLib/x86/sse42/IntraPred_sse42.cpp.obj
[71/98] Building CXX object source/Lib/vvdec/CMakeFiles/vvdec.dir/__/CommonLib/x86/sse42/LoopFilter_sse42.cpp.obj
[72/98] Building CXX object source/Lib/vvdec/CMakeFiles/vvdec.dir/__/CommonLib/x86/sse42/Picture_sse42.cpp.obj
[73/98] Building CXX object source/Lib/vvdec/CMakeFiles/vvdec.dir/__/CommonLib/x86/sse42/SampleAdaptiveOffset_sse42.cpp.obj
[74/98] Building CXX object source/Lib/vvdec/CMakeFiles/vvdec.dir/__/CommonLib/x86/avx/Trafo_avx.cpp.obj
[75/98] Building CXX object source/Lib/vvdec/CMakeFiles/vvdec.dir/__/CommonLib/x86/avx/Buffer_avx.cpp.obj
[76/98] Building CXX object source/Lib/vvdec/CMakeFiles/vvdec.dir/__/CommonLib/x86/avx/InterpolationFilter_avx.cpp.obj
[77/98] Building CXX object source/Lib/vvdec/CMakeFiles/vvdec.dir/__/CommonLib/x86/avx/InterPred_avx.cpp.obj
[78/98] Building CXX object source/Lib/vvdec/CMakeFiles/vvdec.dir/__/CommonLib/x86/avx/IntraPred_avx.cpp.obj
[79/98] Building CXX object source/Lib/vvdec/CMakeFiles/vvdec.dir/__/CommonLib/x86/avx/AdaptiveLoopFilter_avx.cpp.obj
[80/98] Building CXX object source/Lib/vvdec/CMakeFiles/vvdec.dir/__/CommonLib/x86/avx/RdCost_avx.cpp.obj
[81/98] Building CXX object source/Lib/vvdec/CMakeFiles/vvdec.dir/__/CommonLib/x86/avx/Quant_avx.cpp.obj
[82/98] Building CXX object source/Lib/vvdec/CMakeFiles/vvdec.dir/__/CommonLib/x86/avx/LoopFilter_avx.cpp.obj
[83/98] Building CXX object source/Lib/vvdec/CMakeFiles/vvdec.dir/__/CommonLib/x86/avx/Picture_avx.cpp.obj
[84/98] Building CXX object source/Lib/vvdec/CMakeFiles/vvdec.dir/__/CommonLib/x86/avx/SampleAdaptiveOffset_avx.cpp.obj
[85/98] Building CXX object source/Lib/vvdec/CMakeFiles/vvdec.dir/__/CommonLib/x86/avx2/InterpolationFilter_avx2.cpp.obj
[86/98] Building CXX object source/App/vvdecapp/CMakeFiles/vvdecapp.dir/vvdecapp.cpp.obj
[87/98] Building CXX object source/Lib/vvdec/CMakeFiles/vvdec.dir/__/CommonLib/x86/avx2/RdCost_avx2.cpp.obj
[88/98] Building CXX object source/Lib/vvdec/CMakeFiles/vvdec.dir/__/CommonLib/x86/avx2/Buffer_avx2.cpp.obj
[89/98] Building CXX object source/Lib/vvdec/CMakeFiles/vvdec.dir/__/CommonLib/x86/avx2/AdaptiveLoopFilter_avx2.cpp.obj
[90/98] Building CXX object source/Lib/vvdec/CMakeFiles/vvdec.dir/__/CommonLib/x86/avx2/InterPred_avx2.cpp.obj
[91/98] Building CXX object source/Lib/vvdec/CMakeFiles/vvdec.dir/__/CommonLib/x86/avx2/Trafo_avx2.cpp.obj
[92/98] Building CXX object source/Lib/vvdec/CMakeFiles/vvdec.dir/__/CommonLib/x86/avx2/Picture_avx2.cpp.obj
[93/98] Building CXX object source/Lib/vvdec/CMakeFiles/vvdec.dir/__/CommonLib/x86/avx2/IntraPred_avx2.cpp.obj
[94/98] Building CXX object source/Lib/vvdec/CMakeFiles/vvdec.dir/__/CommonLib/x86/avx2/LoopFilter_avx2.cpp.obj
[95/98] Building CXX object source/Lib/vvdec/CMakeFiles/vvdec.dir/__/CommonLib/x86/avx2/Quant_avx2.cpp.obj
[96/98] Building CXX object source/Lib/vvdec/CMakeFiles/vvdec.dir/__/CommonLib/x86/avx2/SampleAdaptiveOffset_avx2.cpp.obj
[97/98] Linking CXX static library ..\lib\release-static\libvvdec.a
[98/98] Linking CXX executable ..\bin\release-static\vvdecapp.exe

marti@LAPTOP-HM70RGB0 MINGW64 ~/vvdec/build
$ cd ../../

marti@LAPTOP-HM70RGB0 MINGW64 ~
$ cd FFmpeg

marti@LAPTOP-HM70RGB0 MINGW64 ~/FFmpeg
$ ./configure --enable-libvvdec --enable-pic --enable-openssl --enable-libxml2
ERROR: libvvdec >= 1.1.0 not found using pkg-config

If you think configure made a mistake, make sure you are using the latest
version from Git.  If the latest version fails, report the problem to the
ffmpeg-user@ffmpeg.org mailing list or IRC #ffmpeg on irc.freenode.net.
Include the log file "ffbuild/config.log" produced by configure as this will help
solve the problem.
1div0 commented 2 years ago

You need to export PKG_CONFIG_PATH pointing at the directory where is the libvvdec installed.

MartinEesmaa commented 2 years ago

@1div0, I tried everything let's say I used code export PKG_CONFIG_PATH="/home/unknown/Desktop/vvdec/install", but it is failed that is not found. Here is my actions workfile on my self hosted runner: https://github.com/MartinEesmaa/libvvdec_fixmywin/runs/6433560429?check_suite_focus=true

1div0 commented 2 years ago

I was not precise enough. Let's try something similar to UNIX like systems

export PKG_CONFIG_PATH=/usr/local/lib64/pkgconfig

As a check use:

pkg-config --cflags libvvdec -I/usr/local/include

alexgeek commented 2 years ago

First option: vvdecapp --bitstream R266.266 --y4m --output - | ffplay -i -

Second option: https://github.com/tbiat/FFmpeg

Hi,

I can't seem to get ffplay to play it over stream:

.\vvdecapp.exe -b C:\Projects\LIV\desktop\misc\vvdec\ext\bitstreams\LFNST_D_HHI_3\LFNST_D_HHI_3.bit --y4m -o - | ffplay -i -

It works if I output the file and load that

.\vvdecapp.exe -b C:\Projects\LIV\desktop\misc\vvdec\ext\bitstreams\LFNST_D_HHI_3\LFNST_D_HHI_3.bit -o test3.y4m
ffplay .\test3.y4m

--Also I don't see any video output with the WASM tests it just logs the time it took to decode?-- edit: got player working from instructions at https://github.com/fraunhoferhhi/vvdecWebPlayer

Thanks!

image

MartinEesmaa commented 2 years ago

@alexgeek, thank you for your information. So your vvdecapp can't play with ffplay pipe only, but converting to y4m/yuv is working display without pipe. Can you try my FFmpeg VVC version to play with your 266 bitstream file? It should work.

Command for ffplay vvc version:

ffplay_vvceasy LFNST_D_HHI_3.bit

If FFmpeg VVC version doesn't work, could you upload sample bitstream file, original file and vvencapp commands, so it could more helpful for an extra information. By the way, make sure your vvencapp & vvdecapp is latest version.

alexgeek commented 2 years ago

@alexgeek, thank you for your information. So your vvdecapp can't play with ffplay pipe only, but converting to y4m/yuv is working display without pipe. Can you try my FFmpeg VVC version to play with your 266 bitstream file? It should work.

Command for ffplay vvc version:

ffplay_vvceasy LFNST_D_HHI_3.bit

If FFmpeg VVC version doesn't work, could you upload sample bitstream file, original file and vvencapp commands, so it could more helpful for an extra information. By the way, make sure your vvencapp & vvdecapp is latest version.

  • Martin Eesmaa

Hi Martin,

ffplay_vvceasy [file] does work (i.e. .\Windows_FF_VVCEasy\ffplay_vvceasy.exe C:\Projects\LIV\desktop\misc\vvdec\ext\bitstreams\TREE_C_HHI_3\TREE_C_HHI_3.bit)

However shouldn't the pipe from the output of vvdecapp work? This is the same as standard ffplay:

.\vvdecapp.exe -b C:\Projects\LIV\desktop\misc\vvdec\ext\bitstreams\TREE_C_HHI_3\TREE_C_HHI_3.bit --y4m -o - | .\Windows_FF_VVCEasy\ffplay_vvceasy.exe -i -

Maybe it's something like Windows carriage returns causing a problem?

If FFmpeg VVC version doesn't work, could you upload sample bitstream file, original file and vvencapp commands, so it could more helpful for an extra information. By the way, make sure your vvencapp & vvdecapp is latest version.

I'm just using the sample streams that the cmake downloads, those .bit files are h266 streams ready for the vvdecapp executable to decode right?

Thanks

MartinEesmaa commented 2 years ago

@alexgeek,

I'm just using the sample streams that the cmake downloads, those .bit files are h266 streams ready for the vvdecapp executable to decode right?

Yes and you're right, I just found the link: https://www.itu.int/wftp3/av-arch/jvet-site/bitstream_exchange/VVC/draft_conformance/draft6/

Maybe it's something like Windows carriage returns causing a problem?

I'm not sure, it might work or not :/. Maybe scan corrupted files of sfc /scannow or download FFmpeg latest version builds for Windows?

For vvdecapp into ffplay pipe (2022-06-22-git-fed07efcde-full_build-www.gyan.dev), it plays fine, but it's too fast using FPS 50 and loops infinite: feewf

For ffmpeg with vvc version, now plays normally and the speed is normal of 25 fps, loops infinite: viewkfi

However shouldn't the pipe from the output of vvdecapp work? This is the same as standard ffplay:

Same works, but FPS sets to 50:

Input #0, yuv4mpegpipe, from 'pipe:':
  Duration: N/A, start: 0.000000, bitrate: N/A
  Stream #0:0: Video: rawvideo (Y3[11][10] / 0xA0B3359), yuv420p10le(progressive), 768x384, 50 fps, 50 tbr, 50 tbn, 50 tbc
alexgeek commented 2 years ago

@alexgeek,

I'm just using the sample streams that the cmake downloads, those .bit files are h266 streams ready for the vvdecapp executable to decode right?

Yes and you're right, I just found the link: https://www.itu.int/wftp3/av-arch/jvet-site/bitstream_exchange/VVC/draft_conformance/draft6/

Maybe it's something like Windows carriage returns causing a problem?

I'm not sure, it might work or not :/. Maybe scan corrupted files of sfc /scannow or download FFmpeg latest version builds for Windows?

For vvdecapp into ffplay pipe (2022-06-22-git-fed07efcde-full_build-www.gyan.dev), it plays fine, but it's too fast using FPS 50 and loops infinite: feewf

For ffmpeg with vvc version, now plays normally and the speed is normal of 25 fps, loops infinite: viewkfi

However shouldn't the pipe from the output of vvdecapp work? This is the same as standard ffplay:

Same works, but FPS sets to 50:

Input #0, yuv4mpegpipe, from 'pipe:':
  Duration: N/A, start: 0.000000, bitrate: N/A
  Stream #0:0: Video: rawvideo (Y3[11][10] / 0xA0B3359), yuv420p10le(progressive), 768x384, 50 fps, 50 tbr, 50 tbn, 50 tbc
  • Martin Eesmaa

What is your pipe command / terminal you're using?

MartinEesmaa commented 2 years ago

@alexgeek, my pipe and terminal commands are:

Terminal: Windows Command Prompt

Pipe:

vvdecapp -b TREE_C_HHI_3.bit --y4m -o - | ffplay -i -

play simple file with ffmpeg vvceasy:

ffplay_vvceasy TREE_C_HHI_3.bit
alexgeek commented 2 years ago

@alexgeek, my pipe and terminal commands are:

Terminal: Windows Command Prompt

Pipe:

vvdecapp -b TREE_C_HHI_3.bit --y4m -o - | ffplay -i -

play simple file with ffmpeg vvceasy:

ffplay_vvceasy TREE_C_HHI_3.bit
  • Martin Eesmaa

Ty! That works in command prompt. Seems I get the broken playback in powershell (7.2.4) and ffplay doesn't even open with powershell 5.1.

alexgeek commented 2 years ago

Okay seems to have been a known problem for almost 6 years, ignore me :) https://github.com/PowerShell/PowerShell/issues/1908

MartinEesmaa commented 2 years ago

Ty! That works in command prompt. Seems I get the broken playback in powershell (7.2.4) and ffplay doesn't even open with powershell 5.1.

Okay seems to have been a known problem for almost 6 years, ignore me :) https://github.com/PowerShell/PowerShell/issues/1908

No problem @alexgeek. I know the issue is long almost 6 years until someone fixes & solves it. Have a nice day!

adamjw24 commented 2 years ago

Okay seems to have been a known problem for almost 6 years, ignore me :) PowerShell/PowerShell#1908

Thanks for looking into this!