Czy możliwe jest kodowanie subwooferów za pomocą ffmpeg? Przez hardcode rozumiem nakładanie napisów jako zdjęć na wideo i byłoby niemożliwe do usunięcia, ponieważ byłyby częścią filmu. Próbowałem przekonwertować napisy na .ass, a następnie próbowałem go zakodować, ale ffmpeg nic nie robi i zwraca ten sam plik. Użyłem VLC, aby je zakodować, ale po prostu osadza je w samym pliku wideo i nie uwzględnia ich jako obraz bezpośrednio nałożony na wideo. Mój wynik końcowy powinien wyglądać mniej więcej tak:
Utworzono fonts.conf, a następnie ponowiono:
Z:\New folder>ffmpeg -i input.wmv -vf "subtitle=sub.srt" output.wmv
ffmpeg version N-69247-g85d7e02 Copyright (c) 2000-2015 the FFmpeg developers
built on Jan 25 2015 02:18:48 with gcc 4.9.2 (GCC)
configuration: --enable-gpl --enable-version3 --disable-w32threads --enable-avisynth --enable-bzlib --enable-fontconfig --enable-frei0r
libavutil 54. 17.100 / 54. 17.100
libavcodec 56. 20.100 / 56. 20.100
libavformat 56. 19.100 / 56. 19.100
libavdevice 56. 4.100 / 56. 4.100
libavfilter 5. 8.101 / 5. 8.101
libswscale 3. 1.101 / 3. 1.101
libswresample 1. 1.100 / 1. 1.100
libpostproc 53. 3.100 / 53. 3.100
Guessed Channel Layout for Input Stream #0.1 : stereo
Input #0, asf, from 'input.wmv':
Metadata:
major_brand : isom
minor_version : 1
compatible_brands: isomavc1
encoder : Lavf56.15.101
PRIVATE/TotalBitrate: 628000
WM/VideoHeight : 240
WM/VideoWidth : 320
WM/VideoFrameRate: 0
title : input
Duration: 01:47:53.77, start: 0.000000, bitrate: 656 kb/s
Stream #0:0: Video: wmv2 (WMV2 / 0x32564D57), yuv420p, 320x240, SAR 120:67 DAR 160:67, 25 fps, 25 tbr, 1k tbn, 1k tbc
Stream #0:1: Audio: wmav2 (a[1][0][0] / 0x0161), 44100 Hz, 2 channels, fltp, 128 kb/s
[AVFilterGraph @ 0000000002c5b4a0] No such filter: 'subtitle'
Error opening filters!
Wymieniłem "subtitle=sub.srt"
z subtitle="sub.srt"
a subtitle=sub.srt
i dostał ten sam rezultat.
Konwertowałem podtytuł na .ass: ffmpeg -i sub.srt sub.ass
Potem użyłem -vf ass=sub.ass
i zakodowałem wideo, ale bez napisów.
Wkleiłem dokładnie ten sam kod podany w fonts.conf.
Jak mogę wybrać czcionki? Czy powinienem używać tekstu rysunkowego?
ffmpeg -i subtitle.srt subtitle.ass
ffmpeg -i input.mp4 -vf ass=subtitle.ass output.mp4
Odpowiedzi:
Filtr jest wywoływany za pomocą . Ponadto twoja wersja ffmpeg nie jest kompilowana , więc nie będzie można na stałe zapisywać sub.
subtitles
s
--enable-libass
Gdy masz już wersję z włączoną biblioteką libass (np. Kompilując się ), spróbuj tego:
Ale zauważ, że zamieniłem wyjście WMV / WMA na H.264 i AAC. ffmpeg nie ma kodera dla najnowszych wersji WMV, więc twoje wyjście wyglądałoby całkiem źle. A ponieważ kodujesz napisy na stałe, i tak musisz ponownie zakodować wideo.
źródło
Pomyślnie przetestowałem to polecenie:
Uwaga: Jeśli dane wyjściowe mówią coś o tym
No usable fontconfig configuration file found, using fallback
, musisz utworzyć wewnątrz folderu bin ffmpeg nowy folder o nazwiefonts
z plikiem inside (fonts.conf
), który określa, gdzie ffmpeg ma szukać czcionek.Użyłem tego pliku, aby działał (testowany w systemie Windows):
źródło
drawtext=fontfile=arial.ttf
ffmpeg -i input.mp4 -vf "subtitles=subtitle.srt" output.mp4
"subtitles=C:\Users\user\Videos\sub.srt"
nie będzie działać.