Recherche avancée

Médias (1)

Mot : - Tags -/MediaSPIP

Autres articles (104)

Sur d’autres sites (19096)

  • How to update this script to generate HLS video with different resolution streams ? [closed]

    1er décembre 2023, par Andy Z

    I have the following FFmpeg script :

    


    ffmpeg -i video.mp4 -i video.vtt \
 -map 0:v -map 0:a:0 -map 1 \
 -s:v:0 1080x1920 -c:v:0 h264 -b:v:0 500K \
 -c:a:0 copy -c:a:1 copy -c:a:2 copy -c:s webvtt \
 -f hls -hls_playlist_type vod -var_stream_map "v:0,a:0,s:0" \
 -master_pl_name video.m3u8 -hls_time 6 -hls_list_size 0 -hls_allow_cache 1 -start_number 1 \
 -hls_segment_filename "output/hls/%v/seg-%d.ts" output/hls/%v/index.m3u8


    


    Currently it only produces one 1080x1920 stream, how do I produce more lower resolution ones so it can adjust based on client bandwidth ?

    


    Also, I've noticed that it doesn't add the reference to the VTT file to the master HLS playlist ; I had to add this manually but is there a way to make FFmpeg do it for me ?

    


    #EXT-X-MEDIA:TYPE=SUBTITLES,GROUP-ID="subs",NAME="English",DEFAULT=YES,AUTOSELECT=YES,FORCED=NO,LANGUAGE="en",CHARACTERISTICS="public.accessibility.transcribes-spoken-dialog",URI="0/index_vtt.m3u8"


    


    I've tried this, but I get an argument error :

    


    ffmpeg -i video.mp4 -i video.vtt \
 -map 0:v -map 0:a:0 -map 1 \
 -s:v:0 1080x1920 -c:v:0 h264 -b:v:0 500K \
 -s:v:1 720x1280 -c:v:1 h264 -b:v:1 300K \
 -s:v:2 480x854 -c:v:2 h264 -b:v:2 150K \
 -c:a:0 copy -c:a:1 copy -c:a:2 copy -c:s webvtt \
 -f hls -hls_playlist_type vod -var_stream_map "v:0,a:0,s:0 v:1,a:1 s:1 v:2,a:2 s:2" \
 -master_pl_name video.m3u8 -hls_time 6 -hls_list_size 0 -hls_allow_cache 1 -start_number 1 \
 -hls_segment_filename "output/hls/%v/seg-%d.ts" output/hls/%v/index.m3u8


    


  • FFMPEG, MPV, SVP 4 Pro : not converting as original resolution problem, yuv420p10 -> p010 [closed]

    12 août 2023, par LeeShey

    I am using SVP4 Pro(Frame rate conversion).
The SVP 4 Pro setting :
RIFE AI engine setting
encoder commands
Transcoding 4K(3840x2160) video exports 3840x2144 resolution.
I think converting yuv420p10 -> p010 causes video height loss.

    


    I did transcoding FHD video(just for test), but it worked lossless.
Problems to 4K, but not FHD ??

    


    Here's the log :

    


    19:36:05.942: ===== Starting mpv ======
19:36:05.942: Command line: C:\Program Files (x86)\SVP 4\mpv64\mpv.exe D:/Candy/prob3.mov --o=D:/Candy/prob3.SVP.VO.mov --no-audio --no-sub --no-sub-auto --input-ipc-server=mpvencodepipe --input-media-keys=no --no-msg-color --vf=lavfi=[yadif=send_frame],vapoursynth:[C:\Users\????\AppData\Roaming\SVP4\scripts\ffff.py]:4:16 --ovc=hevc_nvenc --ovcopts=preset=lossless,time_base=1000/120000,threads=16
19:36:05.982: (+) Video --vid=1 (*) (prores 3840x2160 60.000fps)
19:36:05.982: Audio --aid=1 --alang=eng (*) (pcm_s16le 2ch 48000Hz)
19:36:06.277: vstrt: TensorRT version mismatch, built with 2135 but loaded with 2136; continue but fingers crossed...
19:36:06.856: CUDA lazy loading is not enabled. Enabling it can significantly reduce device memory usage. See `CUDA_MODULE_LOADING` in https://docs.nvidia.com/cuda/cuda-c-programming-guide/index.html#env-vars
19:36:06.930: CUDA lazy loading is not enabled. Enabling it can significantly reduce device memory usage. See `CUDA_MODULE_LOADING` in https://docs.nvidia.com/cuda/cuda-c-programming-guide/index.html#env-vars
19:36:07.005: CUDA lazy loading is not enabled. Enabling it can significantly reduce device memory usage. See `CUDA_MODULE_LOADING` in https://docs.nvidia.com/cuda/cuda-c-programming-guide/index.html#env-vars
19:36:07.079: CUDA lazy loading is not enabled. Enabling it can significantly reduce device memory usage. See `CUDA_MODULE_LOADING` in https://docs.nvidia.com/cuda/cuda-c-programming-guide/index.html#env-vars
19:36:09.683: [autoconvert] Converting yuv420p10 -> p010
19:36:09.693: VO: [lavc] 3840x2144 p010
19:36:09.693: [vo/lavc] Opening encoder: NVIDIA NVENC hevc encoder [hevc_nvenc]
19:36:09.695: [ffmpeg] hevc_nvenc: The selected preset is deprecated. Use p1 to p7 + -tune or fast/medium/slow.
19:36:10.130: [encode] Opening output file: D:/Candy/prob3.movprob3.SVP.VO.mov
19:36:10.131: [encode] Opening muxer: QuickTime / MOV [mov]
19:36:10.131: [ffmpeg] mov: WARNING codec timebase is very high. If duration is too long,
19:36:10.131: [ffmpeg] file may not be playable by quicktime. Specify a shorter timebase
19:36:10.131: [ffmpeg] or choose different container.
19:36:10.136: [autoconvert] Converting yuv420p10 -> p010
19:36:10.145: V: 00:00:00 / 00:00:15 (0%) {0.0min 0.0MB}
19:36:11.087: -- PAUSED --



    


  • How to use ffmpeg to upscale video resolution with libplacebo ?

    30 juillet 2023, par Ironbox

    In Vapoursynth, it is convenient to download and use plugins to change the frame rate of videos. However, it seems that using FFmpeg has more limitations (or maybe I haven't found the right method). Anime4K is a video enhancement algorithm suitable for anime and similar videos. In MPV, their plugins can be imported and used for real-time frame rate conversion.

    


    In FFmpeg, how can I use the algorithms in glsl files to change the video frame rate, instead of using FFmpeg's built-in algorithms ?

    


    In FFmpeg, i can use libplacebo filters can also be used to apply GLSL shaders. In my tests, using command like :

    


    libplacebo=custom_shader_path=Anime4K_Upscale_CNN_x2_VL.glsl


    


    this leads to noticeable GPU usage, but the output video resolution remains the same as the original.

    


    I can pass in the w and h parameters when calling the libplacebo filter :

    


    libplacebo=w=iw*2:h=ih*2:custom_shader_path=shaders/Anime4K_Upscale_CNN_x2_VL.glsl


    


    This achieves the purpose of super resolution, but is it essentially using anime4k for upscaling behind the processing ?
Is it using the upscaling algorithm in libplacebo first, before applying anime4k ? How can I achieve my original goal that only use anime4k to upscale ?
here's my full command (in python) :

    


    [
    'ffmpeg -hide_banner',
    '-hwaccel', 'cuda',
    '-i', '"{input_ab_path}"',
    '-filter_complex',
    '"[0:v]libplacebo=custom_shader_path=libplacebo=custom_shader_path=shaders/Anime4K_Upscale_CNN_x2_VL.glsl,subtitles="{sub_file}":si=0[out]"',
    '-map', '0:a',
    '-map', '"[out]"',
    '-c:v', 'libsvtav1',
    '-svtav1-params', 'scm=2:scd=1:enable-overlays=1:enable-tf=0:tune=0:preset=7:crf=18',
    '-c:a', 'libvorbis',
    '-qscale:a', '10',
    '-pix_fmt', 'yuv420p10le',
    '-y', '"{output_ab_path}"'
]