n00mkrad / flowframes

Flowframes Windows GUI for video interpolation using DAIN (NCNN) or RIFE (CUDA/NCNN)
GNU General Public License v3.0
1.45k stars 115 forks source link

"No video was encoded! FFMPEG Output: " #294

Open Phoenix405 opened 8 months ago

Phoenix405 commented 8 months ago

I am using Flowframes version 1.40.0 (Keep in mind I am using this on VMware in case that may have to do with the issue.) and whenever I try to interpolate anything, it returns the error "No video was encoded! FFMPEG Output: " with it being blank for the output. I have python 3.6 installed and I have ffmpeg installed. I'm not really sure what the issue is besides perhaps me running it in a vmware?

Lilneo786 commented 8 months ago

ffmpeg -version

try running FFmpeg separately to see if it produces any errors or warnings when encoding a video. Replace input.mp4 and output.mp4 with your actual file names.

ffmpeg -i input.mp4 -c:v libx264 output.mp4

Phoenix405 commented 8 months ago

Refere

After running that, This is what returned:

ffmpeg version 6.1-essentials_build-www.gyan.dev Copyright (c) 2000-2023 the FFmpeg developers built with gcc 12.2.0 (Rev10, Built by MSYS2 project) configuration: --enable-gpl --enable-version3 --enable-static --pkg-config=pkgconf --disable-w32threads --disable-autodetect --enable-fontconfig --enable-iconv --enable-gnutls --enable-libxml2 --enable-gmp --enable-bzlib --enable-lzma --enable-zlib --enable-libsrt --enable-libssh --enable-libzmq --enable-avisynth --enable-sdl2 --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxvid --enable-libaom --enable-libopenjpeg --enable-libvpx --enable-mediafoundation --enable-libass --enable-libfreetype --enable-libfribidi --enable-libharfbuzz --enable-libvidstab --enable-libvmaf --enable-libzimg --enable-amf --enable-cuda-llvm --enable-cuvid --enable-ffnvcodec --enable-nvdec --enable-nvenc --enable-dxva2 --enable-d3d11va --enable-libvpl --enable-libgme --enable-libopenmpt --enable-libopencore-amrwb --enable-libmp3lame --enable-libtheora --enable-libvo-amrwbenc --enable-libgsm --enable-libopencore-amrnb --enable-libopus --enable-libspeex --enable-libvorbis --enable-librubberband libavutil 58. 29.100 / 58. 29.100 libavcodec 60. 31.102 / 60. 31.102 libavformat 60. 16.100 / 60. 16.100 libavdevice 60. 3.100 / 60. 3.100 libavfilter 9. 12.100 / 9. 12.100 libswscale 7. 5.100 / 7. 5.100 libswresample 4. 12.100 / 4. 12.100 libpostproc 57. 3.100 / 57. 3.100 Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'ChosoPunch.mp4': Metadata: major_brand : isom minor_version : 512 compatible_brands: isomiso2avc1mp41 date : 2023-12-23T20:54:15.968082 encoder : Lavf58.54.100 Duration: 00:00:00.46, start: 0.000000, bitrate: 16944 kb/s Stream #0:00x1: Video: h264 (High) (avc1 / 0x31637661), yuv420p(progressive), 1920x1080, 16785 kb/s, 23.98 fps, 23.98 tbr, 24k tbn (default) Metadata: handler_name : VideoHandler vendor_id : [0][0][0][0] Stream #0:10x2: Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 131 kb/s (default) Metadata: handler_name : SoundHandler vendor_id : [0][0][0][0] File 'ChosoPunchFull.mp4' already exists. Overwrite? [y/N]

Lilneo786 commented 8 months ago

1:) To overwrite the existing 'ChosoPunchFull.mp4' file, simply enter 'y' and press Enter. FFMPEG will replace the file with the newly encoded video.

2:) If you prefer to keep both versions and not overwrite the existing file, you can change the output file name in your Flowframes command. For instance, you can specify a different name like 'ChosoPunchFull2.mp4' to avoid any conflicts.

3:) If you no longer need the current 'ChosoPunchFull.mp4' file, you can manually delete it from your file system before running Flowframes again. This will allow Flowframes to create a new output file without any issues.

Once you have decided on one of these options, proceed with running Flowframes, and it will encode the interpolated frames into the video seamlessly.

Phoenix405 commented 8 months ago

After doing those steps, I still get an error on flowframes saying "No video was encoded! FFmpeg Output: ". I'll provide along the settings I am using:

Interpolation AI: |RIFE (NCNN/VS) Vulkan/NCNN/VapourSynth Implementation of RIFE| Input Video: |C:\Users\Sami\Downloads\ChosoPunchFull.mp4| Output Directory: |C\Users\Sami\Downloads| Output FPS and Speed: |23.97602| |x8| = |191.8082 FPS| |Normal Speed| AI Model: |RIFE 4.6 Latest General Model (Recommended)| Output Format: |MP4| |h264| |Very High| |YUV 4:2:0 8-bit|

If anything is wrong with these settings let me know. I also went with step 1 and replaced the "ChosoPunchFull.mp4" file and then put it into flowframes which is what returned the same error.

Lilneo786 commented 8 months ago

You wrote "C\Users\Sami\Downloads" instead of "C:\Users\Sami\Downloads." The backslash "" is used as a directory separator in file paths on Windows, so you should use "C:\Users\Sami\Downloads" with a colon ":" instead of a backslash "".

correct the "Output Directory" path to "C:\Users\Sami\Downloads," and Flowframes should be able to save the interpolated video in the correct directory without encountering the "No video was encoded!" error.

Try again and let me know

Phoenix405 commented 8 months ago

My apologies, It has the colon.

Lilneo786 commented 8 months ago

Glad it worked out :)

Phoenix405 commented 8 months ago

Glad it worked out :)

I still however get the same error message.

Edit: For more info, After clicking the "Interpolate!" button, it gets to work for a few seconds and then says "Interpolated 0/x number of frames (0%) - Average Speed: 0.00 FPS Out - Time 412ms ETA: 08s Done Running RIFE - Interpolation took 01s Peak Output FPS 0.00 Canceled Interpolation Total Processing time: 13s

Lilneo786 commented 8 months ago

Run Flowframes with a Minimal Example: Create a minimal input video (e.g., a very short video clip) and try running Flowframes with that. This can help isolate whether the issue is related to the specific input video or if it's a more general problem.

Phoenix405 commented 8 months ago

After trying that, I still get the same error and the clips I used were 11 seconds long and another one that was only 2 seconds long

Lilneo786 commented 8 months ago

At this point, you might want to consider trying alternative video interpolation tools or approaches that are known to work on your system. DAIN-App is one such alternative. I'm sorry I couldnt be of more help.

Phoenix405 commented 8 months ago

At this point, you might want to consider trying alternative video interpolation tools or approaches that are known to work on your system. DAIN-App is one such alternative. I'm sorry I couldnt be of more help.

Do you know any alternatives for mac? My main host machine is mac and I don't have any way to use Nvidia

Lilneo786 commented 8 months ago

SlomoVideo:

Install Homebrew (if not already installed): /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"

Install SlowMoVideo:

brew install slowmovideo

Phoenix405 commented 8 months ago

Is there any other programs that doesn't require homebrew? I have restrictions on my mac that prevent me from doing admin commands or any admin ability

Lilneo786 commented 8 months ago

Is there any other programs that doesn't require homebrew? I have restrictions on my mac that prevent me from doing admin commands or any admin ability

Compile from Source: • Visit the slowmoVideo GitHub repository: https://github.com/slowmoVideo/slowmoVideo. • Download the source code. • Follow the instructions in the README.md file for compiling the source code. This often involves using command line tools like make and cmake. Note that you might need to install dependencies manually, which could be complex.

longmpham commented 4 months ago

I had this issue and although its not related to you, I still had the same error output. When I had checked my files, the names contained a quote/apostrophe ' which failed to interpolate the video (ie. I'll, They're, We'll, etc..). Renaming these files without them helped my case.

Sorry it doesn't help your case though but hopefully my case will help others. What helped me figure out the problem was using just a generic ffmpeg command to check the files. Great tip @Lilneo786