Ответы пользователя по тегу FFmpeg
  • FFmpeg M3U8 Playlist to Mp4?

    honor8
    @honor8
    Принципы быстродействия VBA в описании
    Лучше сначала чекнуть лист, читается или нет https://m3u8.dev/

    Хуже когда в листе подобное
    https://si.sdrawkcabx.com/_v10/b967e67880427cbddd0603ebc1190a2c5e4bed2317e4346aaf05b958ce357b93fcddd4182d6765e690afeab174d5d78306ff6bf1dd1f62256942460290744f2faaef4fd15c43064e9d7bb8ac872d6817ef1c63b6d6b5d0559706d03917b406d0f5a52dfcedca985463dbbb7d45fa521e296c7cb1f9dca75ebb4c8c67d3cbb192dfd287748a1b85da1300f2aeb8fe65c2/1080/index.m3u8

    такое не скачает ни ffmpeg -i, ни yt-dlp, ни немного модифицированный под некоторые сайты vdl.

    Может приложение https://github.com/nilaoda/N_m3u8DL-CLI/releases/ и если не ставить галку DeleteAfterDone оставить метафайл с полными ссылками на кадры.
    Ответ написан
    Комментировать
  • FFmpeg, ошибки при проверке файлов?

    honor8
    @honor8
    Принципы быстродействия VBA в описании
    Вообще видео могли быть записаны с ошибкой (чаще ошибки встречаются на SD). Если вам очень необходимо избавится от ошибок, прогоните фреймы заново:
    ffmpeg -i "%%i" -c copy "%%~ni_restored.mkv"
    или вариант с перекодировкий видеопотока (но гораздо медленее)
    ffmpeg -i "%%i" -map 0 -c copy -c:v h264 -pix_fmt yuv420p "%%~ni_restored.mkv"
    Ответ написан
  • Как разрезать видос на 20секундные ролики в ffmpeg?

    honor8
    @honor8
    Принципы быстродействия VBA в описании
    Попробуйте указать -segment_time в секундах и измените расширение. Пример написания на BAT:
    For /R %%i In (*.mp4) Do (
    	%ffmpeg% -i "%%i" -c copy -f segment ^
    		-segment_start_number 1 -segment_time 20 "%%~ni_%%03d.ts"
    	REM del /s /q "%%i"
    )

    Для получения неотрицательной отметки времени первого кадра при разрезке старого кодека h264 нужно добавить параметр -avoid_negative_ts 1.
    Для удаления исходных файлов стереть из кода REM (%ffmpeg% переменная содержит путь к приложению).
    Ответ написан
    Комментировать
  • Бегущий текст на видео средствами ffmpeg?

    honor8
    @honor8
    Принципы быстродействия VBA в описании
    Для параметров -fv между тегами [in] и [out] и -filter_complex несколько значений указываются через запятую.
    ffmpeg -i video_f0.webm -i audio_f1.opus -i logo_f2.png ^
      -filter_complex "[0:v]drawtext=fontfile='C\:\\Windows\\fonts\\Arial.ttf':textfile='text.txt':y=h-line_h-50:x='if(gt(x,-tw),w-mod(2*n,w+tw),w)':fontcolor=red@0.80:fontsize=H/12[a]; [2:v]scale=200:-1[b]; [a][b]overlay=W-w-40:H-h-20[outv]" -map "[outv]" -map 1:a ^
      -metadata:s:a language=rus -shortest -y "Output.mp4"

    -vf "scale=-1:720, drawtext=fontfile='C\:\\Windows\\fonts\\Arial.ttf':timecode='00\:00\:50\;00':rate=30:text='TCR\:':y=h-(2*lh):x=(w-tw)/2:fontcolor=white@1:fontsize=28:box=1:boxborderw=8:boxcolor=black@0.50"

    Примеры https://ffmpeg.lav.io/, https://vishenkaediting.video.blog/стр-2, https://azzrael.ru/tag/ffmpeg
    Ответ написан
    Комментировать
  • Как с помощью ffmpeg наложить водяной знак из png с прозрачным фоном?

    honor8
    @honor8
    Принципы быстродействия VBA в описании
    ffmpeg -i video_f0.webm -i audio_f1.opus -i logo_f2.png \
      -filter_complex "[0:v][2:v]overlay=main_w-overlay_w-0:main_h-overlay_h-0" \
      -metadata:s:a language=rus -shortest -y "Output.mp4"

    main_w; main_h - ширина и высота видеоролика
    overlay_w; overlay_h - ширина и высота накладываемого логотипа
    Ответ написан
    Комментировать
  • Как переделать webm в .ts файлы для HLS стриминга?

    honor8
    @honor8
    Принципы быстродействия VBA в описании
    Писал для себя. Заменить в скрипте mp4 на webm, и -c copy на -c:v h264 -pix_fmt yuv420p -c:a aac. Закинуть в каталог с файлом.
    https://github.com/h8nor/docs/blob/master/vendor/f...
    Ответ написан
    Комментировать
  • Как пакетно разделять видео на сегменты по 10 минут с помощью ffmpeg?

    honor8
    @honor8
    Принципы быстродействия VBA в описании
    Для удаления исходных файлов стереть из кода REM (%ffmpeg% переменная содержит путь к приложению).
    For /R %%i In (*.mp4) Do (
    	%ffmpeg% -i "%%i" -f segment -segment_start_number 1 ^
    		-segment_time 600 -c copy "%%~ni_%%03d.ts"
    	REM del /s /q "%%i"
    )
    Ответ написан
    Комментировать