Rendiλ‘ λμμ μλ§ λ£κΈ°: SRTλ₯Ό MP4μ μꡬ μ½μ νλ λ²
κ²μκ° λλ λμμκ³Ό SRT νμΌμ Rendiμ λΉλκΈ° FFmpeg APIλ‘ μ²λ¦¬ν΄ μλ§μ΄ κ³ μ λ MP4λ₯Ό λ§λλ λ°©λ²μ μ€λͺ ν©λλ€. μ λ ₯ μ€λΉλΆν° μμ μ μΆ, μν νμΈ, λΉμ© κ³μ°, μ΅μ’ μμ κ²μκΉμ§ μλν νμ΄νλΌμΈμ νμν ν΅μ¬ μ μ°¨λ₯Ό ν λ²μ μ΄ν΄λ΄ λλ€.
κ²μμΌ

κ²μκ° λλ λμμκ³Ό νμΈμ λ§μΉ SRT νμΌμ΄ μλ€λ©΄, μ체 μΈνλΌμ μμ μ²λ¦¬ μ컀λ₯Ό μΆκ°νμ§ μκ³ λ μλ§μ΄ κ³ μ λ MP4λ₯Ό λ§λ€ μ μμ΅λλ€. Rendiλ μΌλ°μ μΈ FFmpeg μλ§ νν°λ₯Ό API μμ μΌλ‘ λ°μ λͺ λ Ή IDλ₯Ό λ°κΈνκ³ , λ λλ§μ μ±κ³΅νλ©΄ μ μ₯λ κ²°κ³Όλ¬Όμ λ°νν©λλ€. ν΅μ¬ κ²½κ³λ λͺ νν©λλ€. κΈ°μ‘΄ μλ§μ μμ ν½μ μ μ νλ λμμ μλ§ λ£κΈ° λ°©μμΌ λΏ, μμ±μ λ°μμ°κ±°λ μλ§ λ΄μ©μ΄ λ§λμ§ νλ¨νμ§λ μμ΅λλ€.
ν΅μ¬λΆν°: λμμ μλ§ λ£κΈ°λ μΈμ λ²μΈμ΄ λ§μκΉ?
νλ μ΄μ΄μ μλ§ νΈλ μ€μ κ³Ό κ΄κ³μμ΄ λͺ¨λ μμ²μμκ² κ°μ μλ§μ 보μ¬μ€μΌ νλ€λ©΄ SRTλ₯Ό μμμ μ νλλ€. μμ²μκ° μλ§μ λκ±°λ μΈμ΄λ₯Ό λ°κΎΈκ³ , νλ μ΄μ΄μ μ κ·Όμ± κΈ°λ₯μ μ΄μ©ν΄μΌ νλ€λ©΄ SRTλ₯Ό λ³λ νΈλμΌλ‘ μ μ§νλ νΈμ΄ λ§μ΅λλ€.
Rendiλ₯Ό μ¬μ©ν λμ μ€λ¬΄ μμλ λ€μκ³Ό κ°μ΅λλ€.
- μ΅μ’ λμμκ³Ό SRTλ₯Ό ν¨κ» κ²μν©λλ€.
- λ νμΌμ Rendiκ° κ°μ Έμ¬ μ μλ URLμ λκ±°λ, λ‘컬 νμΌμ λ¨Όμ Rendiμ μ λ‘λν©λλ€.
- λ¬Έμμ λͺ μλ FFmpeg μλ§ λͺ λ Ήμ μ μΆν©λλ€.
- λͺ λ Ή IDλ₯Ό ν΄λ§νκ±°λ μΉν μΌλ‘ μ΅μ’ κ²°κ³Όλ₯Ό λ°μ΅λλ€.
- MP4 λ©νλ°μ΄ν°λ₯Ό νμΈνκ³ μ 체 μμμ μμ²ν λ€ λ€μ μμ μ 보λ λλ€.
μ΄ μμλ μ€μν©λλ€. μΈμ½λ© μ체λ μ±κ³΅νλλΌλ μλ§μ΄ μΌμ° λμ€κ±°λ μ΄λ¦μ΄ νλ Έκ±°λ, νλ«νΌ μΈν°νμ΄μ€μ λ¬Έκ΅¬κ° κ°λ €μ§λ©΄ κ²°κ³Όλ¬Όμ μ€ν¨ν κ²μ΄λ λ€λ¦μμ΅λλ€.

Rendiκ° μ€μ λ‘ λ§‘λ μν
Rendiλ νΈμ§μκ° μλλΌ κΈ°κ³μ€μ κ°κΉμ΅λλ€. λ‘컬μμ μ€νν FFmpeg λͺ λ Ήμ HTTP APIλ‘ μ λ¬νλ©΄ λ©λλ€. μμ²μ μμ μ§μμλΌκ³ μκ°νλ©΄ μ΄ν΄νκΈ° μ½μ΅λλ€. μ λ ₯ λ³μΉμ μ¬λ£μ μμΉλ₯Ό, FFmpeg λ¬Έμμ΄μ μνν μμ μ, μΆλ ₯ λ³μΉμ μμ±νμ μ΄λ¦μ μ§μ ν©λλ€.
νμ¬ μμ² μ€ν€λ§μλ ffmpeg_commandμ output_filesκ° νμν©λλ€. μ
λ ₯ ν€λ in_μΌλ‘, μΆλ ₯ ν€λ out_μΌλ‘ μμνλ©° μ΄ μ΄λ¦λ€μ λͺ
λ Ή μμμ μ΄μ€ μ€κ΄νΈ μ¬μ΄μ λ€μ λ±μ₯ν©λλ€. μμ²μ΄ μ μμ μΌλ‘ μ μλλ©΄ μμ
μ μΈμνμ ν΄λΉνλ command_idκ° λ°νλ©λλ€.
κ°μ₯ λ¨μν λ°©μμ λμμκ³Ό SRTλ₯Ό νμΌλͺ μ΄ URL λμ νμλλ κ³΅κ° HTTP URL λλ λ§λ£ μκ°μ΄ μλ μλͺ URLμ λλ κ²μ λλ€. λ ΈνΈλΆμ λ‘컬 κ²½λ‘λ μ λ ₯ URLλ‘ μ¬μ©ν μ μμ΅λλ€. λ‘컬 νμΌμ Rendiμ λ©ν°ννΈ μ§μ μ λ‘λ λ°©μμ μ΄μ©ν μ μμΌλ©°, μ΅λ 5 TB νμΌμ μ§μν©λλ€. λ€λ§ μ΄λ λ³λμ μ€λΉ λ¨κ³μ λλ€.
μμμ κ³ μ ν μλ§κ³Ό μ νν μλ§ νΈλμ λ€λ₯Έ κ²°κ³Όλ¬Όμ λλ€
μμμ μ ν μλ§μ λμ½λ©λλ λͺ¨λ νλ μμ μΌλΆκ° λ©λλ€. νλ©΄ λͺ¨μμ μΌκ΄λκ² μ μ§ν μ μμ§λ§, κ·Έ κ²°μ μ λλ릴 μ μμ΅λλ€. μ² μλ₯Ό νλ κ³ μΉλ € ν΄λ μμμ λ€μ λ λλ§ν΄μΌ νλ©° μμ²μκ° μλ§μ μ¨κΈΈ μλ μμ΅λλ€.
μ νν μλ§ νΈλμ νλ©΄κ³Ό λΆλ¦¬λ μνλ‘ λ¨μ΅λλ€. Rendiμ μλ§ μμ λ MP4μ μννΈ μλ§ νΈλμλ mov_textλ₯Ό κΆμ₯νλ©° λΉλμ€ νν°λ₯Ό μ¬μ©νμ§ μμ΅λλ€. μ΄ λ°©μμ μμ²μμ μ νκΆμ μ μ§νκ³ μλ§μ μ΄λ―Έμ§μ ꡬμ λ£μ§ μμ΅λλ€.

κΈ°μ€μ κ°λ¨ν©λλ€. μκ°μ μΌκ΄μ±μ΄ μ°μ μΈ κ²μμ© λ§μ€ν°λ μμ λ―Έλμ΄μ© νμΌμλ μλ§μ μ νλλ€. μλ³Έ SRTλ λ°λμ 보κ΄νκ³ , μ κ·Όμ±Β·κ²μΒ·λ²μΒ·μμ²μ μ νμ΄ μ€μν λλ μ νν νΈλμ΄λ λ³λ μλ§ νμΌλ μ 곡ν©λλ€.
λ λλ§ λΉμ©μ μ°κΈ° μ μ SRTλΆν° νμΈν©λλ€
κ°μ₯ μ λ ΄ν λ λλ§μ λ€μ νμ§ μμλ λλ λ λλ§μ λλ€. μ΄μ νΈμ§λ³Έμ΄ μλλΌ μ νν μ΅μ’ λ³Έμ λ§μΆ° SRTλ₯Ό κ²μν΄μΌ ν©λλ€. μλ§ μμ, μμ λ° μ’ λ£ μκ°, μ΄λ¦κ³Ό μ«μμ μ² μ, μλν μ€λ°κΏ, λνμ μΈ μ μΌνΈ λ¬Έμλ λΉλΌν΄ λ¬Έμλ₯Ό νμΈν©λλ€. μλ§μ΄ λ‘μ΄ μλμ κ²ΉμΉκ±°λ νλ©΄ μλμͺ½ κ°μ₯μ리μ λ무 λΆμ§ μλμ§λ μ΄ν΄λ΄ λλ€.
μ΄ λ¨κ³μ AI μ μ¬κΉμ§ νλ° λ¬Άμ΄ μκ°νλ©΄ μ λ©λλ€. μμ± μΈμμΌλ‘ μλ¨μμ SRT μ΄μμ λ§λ€ μλ μμ§λ§, μ΄ μν¬νλ‘μ λ€μ΄μ€λ μμ μλ μ¬λ λλ μ λ’°ν μ μλ κ²μ μ μ°¨κ° λ¬Έκ΅¬μ νμ΄λ°μ μ΄λ―Έ μΉμΈν μνμ¬μΌ ν©λλ€. μ¬κΈ°μ Rendiκ° λ§‘λ μΌμ λ λλ§μ λλ€.
μ€νμΌμ μ μ©ν Rendi μμ μ μΆνκΈ°
μλ Node.js μμ λ Rendiκ° κ³΅κ°ν μν λμμκ³Ό μν SRTλ₯Ό μ¬μ©νλ―λ‘ μ€νμ νμν κ²μ RENDI_API_KEYλΏμ
λλ€. νμ΄λ‘λλ Rendiμ νμ¬ OpenAPI νλλͺ
κ³Ό λ³μΉ κ·μΉμ λ°λ¦
λλ€. force_style κ°μ ν°μ κΈμμ κ²μμ μΈκ³½μ κ³Ό μλμͺ½ μ¬λ°±μ λ§λ€κ³ , libx264μ AACλ Rendiμ μλ§ λ μνΌμ μ€λͺ
λ MP4λ₯Ό μμ±ν©λλ€.
const headers = {
"X-API-KEY": process.env.RENDI_API_KEY,
"Content-Type": "application/json",
};
const submit = await fetch("https://api.rendi.dev/v1/run-ffmpeg-command", {
method: "POST",
headers,
body: JSON.stringify({
input_files: {
in_video: "https://storage.rendi.dev/sample/big_buck_bunny_720p_16sec.mp4",
in_srt: "https://storage.rendi.dev/sample/subtitles.srt",
},
output_files: { out_1: "subtitled.mp4" },
ffmpeg_command:
"-i {{in_video}} -vf \"subtitles={{in_srt}}:force_style='FontSize=22,PrimaryColour=&H00FFFFFF,OutlineColour=&H00000000,BorderStyle=1,Outline=2,Shadow=0,MarginV=36'\" -c:v libx264 -crf 20 -c:a aac -b:a 192k {{out_1}}",
}),
});
if (!submit.ok) throw new Error(await submit.text());
const { command_id } = await submit.json();
for (;;) {
const poll = await fetch(
`https://api.rendi.dev/v1/commands/${command_id}`,
{ headers: { "X-API-KEY": process.env.RENDI_API_KEY } },
);
const job = await poll.json();
if (job.status === "SUCCESS") {
console.log(job.output_files.out_1);
break;
}
if (job.status === "FAILED") throw new Error(job.error_message);
await new Promise((resolve) => setTimeout(resolve, 2000));
}μλ§ νν°λ νλ μ μ체λ₯Ό λ°κΎΈλ―λ‘ λΉλμ€ μ¬μΈμ½λ©μ΄ νμν©λλ€. μ€νμΌ, μ½λ±, νμ§μ μ‘°μ ν μ μμ§λ§, μ€μ μ λ°κΏ λλ§λ€ κ²μκ° νμν μλ‘μ΄ κ²°κ³Όλ¬Όλ‘ μ·¨κΈν΄μΌ ν©λλ€. Rendiμ 곡μ FFmpeg μΉνΈμνΈμλ fontsdirμ FontNameμ μ΄μ©ν μ¬μ©μ μ§μ ν°νΈλ μ€λͺ
λμ΄ μμ΅λλ€. μ 체 μμ λΌμ΄λΈλ¬λ¦¬μ μ μ©νκΈ° μ μ μ νν ν°νΈμ κΈλ¦¬ν ꡬμ±μ μνν©λλ€.
μ€μ λ‘ κ²μ¦ν λ²μ
2026λ 9μ 11μΌ, μ μλν¬μΈνΈμ μμ² νλ, λ³μΉ κ·μΉ, μνκ°, μλ΅ νλλ₯Ό Rendiμ νμ¬ OpenAPI νμΌκ³Ό λμ‘°νμ΅λλ€. λμΌν μλ§ νν°λ₯Ό FFmpeg 8.0.1μμ Rendiμ κ³΅κ° μν λμμ λ° SRTμ ν¨κ» λ‘μ»¬λ‘ μ€ννμ΅λλ€. κ·Έ κ²°κ³Ό H.264 λΉλμ€μ AAC μ€λμ€λ₯Ό λ΄μ 16μ΄ κΈΈμ΄μ 1280 Γ 720 MP4κ° λ§λ€μ΄μ‘κ³ , 5μ΄ μ§μ μ νλ μμμ μμν μλ§λ λμΌλ‘ νμΈνμ΅λλ€.
μ΄ νκ²½μλ Rendi API ν€κ° μμ΄ Rendi ν΄λΌμ°λ μμ μ μ μΆνμ§ μμμ΅λλ€. μ½λλ μ€ν€λ§λ₯Ό νμΈνκ³ FFmpeg μμ μ λ‘μ»¬λ‘ κ²μ¦νμ§λ§, ν΄λΌμ°λ μ€νκΉμ§ λ§μ³€λ€κ³ μ£Όμ₯νμ§λ μμ΅λλ€.
μ§§μ μμ μ ν΄λ§νκ³ , κΈ΄ μμ μ μΉν μ μ¬μ©ν©λλ€
Rendiμ μν μλν¬μΈνΈλ QUEUED, PROCESSING, PREPARED_FFMPEG_COMMAND, FAILED, SUCCESSλ₯Ό λ°νν μ μμ΅λλ€. POST μμ²μ΄ μ μλλ€κ³ μμ±λ μμμΌλ‘ κ°μ£Όν΄μλ μ λ©λλ€. μ΅μ’
μνκ° λ λκΉμ§ κΈ°λ€λ¦¬κ³ , μ€ν¨νλ©΄ error_messageλ₯Ό νμνλ©°, μ±κ³΅ν λ€μλ§ κ²°κ³Όλ¬Όμ μ½μ΄μΌ ν©λλ€.
Rendiλ μλ£κΉμ§ μ½ 30μ΄ μ΄νλ‘ μμλλ μμ μλ ν΄λ§μ, λ κΈ΄ μμ μλ μΉν μ κΆμ₯ν©λλ€. μΉν μλ ν΄λ§κ³Ό λμΌν μλ£ λͺ λ Ή λ°μ΄ν°κ° λ΄κΉλλ€. μ΄μ νκ²½μμλ μλ£ μ²λ¦¬κΈ°λ₯Ό λ©±λ±νκ² λ§λ€κ³ μ¦μ μλ΅νλλ‘ νλ©°, μΉν μ λ¬μ΄ λλ΄ μ€ν¨ν λλ₯Ό λλΉν΄ ν΄λ§μ 볡ꡬ κ²½λ‘λ‘ λ¨κ²¨λ‘λλ€.
λ―Όκ°ν κ²°κ³Όλ¬Όμ μ λ£ μκΈμ μμ is_private: trueλ‘ μ€μ ν λ€ ν΄λ§ν λ μ¬μ μλͺ
URLμ μμ²ν©λλ€. κΈ°λ³Έκ°μ κ³΅κ° μ μ₯μμ
λλ€. λΉκ³΅κ° νμΌμλ μꡬ κ³΅κ° URLμ΄ μμΌλ©°, μμ²ν λ€μ΄λ‘λ λ§ν¬μ μ ν¨ κΈ°κ°μ μ΅λ 7μΌμ
λλ€.
λλ μ²λ¦¬ μ μ κ²°κ³Όλ¬Όμ μ§μ νμΈν©λλ€
SUCCESSλ FFmpegκ° μμ
μ λλλ€λ λ»μΌ λΏ, μλ§ νμ§μ΄ μ’λ€λ μ¦λͺ
μ μλλλ€. κΈ°κ³κ° μ½λ μλ΅κ³Ό μ€μ νλ©΄μ λͺ¨λ νμΈν΄μΌ ν©λλ€.
λ¨Όμ output_files.out_1μ΄ μ‘΄μ¬νκ³ storage_urlμ΄ μ΄λ¦¬λμ§ νμΈν©λλ€. λ°νλ μ¬μ μκ°, ν΄μλ, μ½λ±, νμΌ νμμ λͺ©νν λ©ν μ¬μκ³Ό λΉκ΅ν©λλ€. κ·Έλ° λ€μ 첫 μλ§, λ§μ§λ§ μλ§, κ°μ₯ λΉ λ₯Έ λν, μ€λ°κΏ, μ΄λ¦, μ«μ, μ»· λλ κ·Έλν½ μ€λ²λ μ΄ κ·Όμ²μ μλ§μ νΉν μ£Όμνλ©΄μ μ 체 μμμ μμ²ν©λλ€.
μ΄ κ²μλ₯Ό ν΅κ³Όν λ€μμΌ κ°μ μ€νμΌ ν리μ μ λκΈ°μ΄μ λ£μ΄μΌ ν©λλ€. μλ³Έ λμμ λ²μ , SRT λ²μ , FFmpeg λͺ λ Ή, Rendi λͺ λ Ή ID, μΆλ ₯ νμΌ ID, κ²μμμ κ²°μ μ ν¨κ» 보κ΄ν©λλ€. μ΄λ° κΈ°λ‘μ΄ μμ΄μΌ λ¨μν λ λλ§ νμΌμ΄ μμ΄λ μμ€μ λμ΄ μ΄μ κ°λ₯ν μ μ μμ€ν μ΄ λ©λλ€.
λΉμ©μ μμ κΈΈμ΄κ° μλλΌ λ°μ΄νΈλ‘ κ³μ°ν©λλ€
Rendiλ μ λ ₯ λ―Έλμ΄μ μΆλ ₯ λ―Έλμ΄μ ν©μ° ν¬κΈ°λ₯Ό μ§κ³ν©λλ€. Rendiμ κ°κ²© μμμμλ 1 GB μ λ ₯κ³Ό 0.5 GB μΆλ ₯μ ν©μ³ μ²λ¦¬λ 1.5 GBλ‘ κ³μ°ν©λλ€. μ΄ μμλ₯Ό κ·Έλλ‘ μ μ©νλ©΄ Free μκΈμ μ 50 GB μ 곡λμΌλ‘ 33κ° μμ μ μμ±νκ³ 0.5 GBκ° λ¨μΌλ©°, κΈ°λ³Έ Pro μκΈμ μ 250 GBλ‘λ 166κ° μμ μ μμ±νκ³ 1 GBκ° λ¨μ΅λλ€.

μ΄ μμ μλ Rendiμ μμλ₯Ό λ°νμΌλ‘ ν μ°μ κ²°κ³Όμ΄μ§ μλ§ μ²λ¦¬ λ²€μΉλ§ν¬κ° μλλλ€. μ€μ κ³ μ μλ§ MP4μ ν¬κΈ°λ μλ³Έκ³Ό μ½λ± μ€μ , μΆλ ₯μ λ°λΌ λ 컀μ§κ±°λ μμμ§ μ μμ΅λλ€. μ²λ¦¬λμ μμΈ‘νκΈ° μ μ μ€μ μ λ ₯κ³Ό μΆλ ₯μ ν©μ° ν¬κΈ°λ₯Ό μΈ‘μ ν©λλ€.
Freeλ μ $0μ΄λ©° μ²λ¦¬λ 50 GBλ₯Ό μ 곡νκ³ λͺ λ Ή μ€ν μκ°μ 1λΆμΌλ‘ μ νν©λλ€. κΈ°λ³Έ Proλ μ $25μ 250 GBλ₯Ό μ 곡νλ©° λͺ λ Ή μνμ 10λΆμΌλ‘ λ립λλ€. λ ν° CPU ꡬμ±κ³Ό μ€ν μκ° λ¬΄μ ν ꡬμ±μ Rendi μ 체 κ°κ²© λΆμμ μ 리λμ΄ μμΌλ―λ‘ μ¬κΈ°μ κ°μ νλ₯Ό λ°λ³΅ν νμλ μμ΅λλ€.
μ€μ λ‘ μ€μν λΉκ΅ κΈ°μ€μ μ΄μ λ°©μμ λλ€. Kapwing Proλ μ°κ° κ²°μ μ λ©€λ²λΉ μ $16, μκ° κ²°μ μ $24λ‘ μλ΄λμ΄ μμ΅λλ€. κ°λ ν λ²μ© μ²λ¦¬νλ€λ©΄ μκ°μ νΈμ§κΈ°κ° λ νΈν©λλ€. μΉμΈλ μμ μ λ°μ λ°λ³΅ κ°λ₯ν μμ€ν λ¨κ³λ‘ μλ§ λ§λ¬΄λ¦¬ μμ μ μννκ³ , λκ΅°κ° νΈμ§κΈ°λ₯Ό λ€μ μ΄μ§ μμλ κ³Όμ μ μΆμ ν΄μΌ νλ€λ©΄ Rendiκ° λ μ λ§μ΅λλ€.
ν¨κ³Όκ° κ°μ₯ ν° 7κ°μ§ μν¬νλ‘
μλ§μ μΆκ°νλ λͺ¨λ μ¬λμ΄ μ΅μ μ μ¬μ©μλ μλλλ€. μ΄λ―Έ μΉμΈλ SRTκ° μκ³ μ΅μ’ λ λλ§μ κ³μ λ°λ³΅νλ νμ κ°μ₯ μ λ§μ΅λλ€.
μ νμΌλ‘ λ§λ€ λ§ν 3κ°μ§ μμ΄λμ΄
1. λΈλλ κ·μΉμ μ§ν€λ μΌκ΄ μλ§ λ§λ¬΄λ¦¬ λꡬ
κ°μ₯ μ λ§ν κΈ°νμ λλ€. μ½ν μΈ νκ³Ό μμ΄μ μλ₯Ό μν΄ κΈ°λ₯ λ²μλ₯Ό μ’ν ν¬νΈμ λ§λλλ€. λμμ URL, μΉμΈλ SRT, μ΄λ¦μ λΆμΈ μ€νμΌ ν리μ , κ²μ νμ΄μ§, λ€μ΄λ‘λ κ°λ₯ν MP4λ§ λ°μΌλ©΄ λ©λλ€. μ΄ μ νμ΄ νλ κ²μ λ§λ₯ νΈμ§κΈ°κ° μλλΌ λ°λ³΅ κ°λ₯μ±κ³Ό μΉμΈ μ μ°¨μ λλ€.
λ―Έκ΅μμλ add subtitles to a videoκ° μ μ½ 1,900ν κ²μλλ©° Kapwing Proλ μ°κ° κ²°μ κΈ°μ€ λ©€λ²λΉ μ $16λΆν° μμν©λλ€. μ¬μ©μ μ μ
μ λ§λ€ λ§νΌ μμ λ²μκ° λμΌλ©΄μλ, λ°λ³΅λλ ν μν¬νλ‘λ μ΄μ μ΄ λΆλͺ
ν μ νμ λ·λ°μΉ¨ν λ§νΌ ꡬ체μ μ
λλ€.
νλ§€ κ°λ₯ν μ΅μ λ²μ μλ μλͺ URL μ λ ₯, SRT κ²μ¦, λ³κ²½ν μ μλ μμμ λΈλλ ν리μ , Rendi μ μΆ, μΉν μ²λ¦¬, μΆλ ₯ λ©νλ°μ΄ν°, μ¬λμ μΉμΈ λλ κ±°μ μ΄ νμν©λλ€. λ¬Έμ λ λ°©μ΄λ ₯μ λλ€. FFmpeg νΈμΆ νλλ₯Ό μ λ ₯ νΌμΌλ‘ κ°μΌ μ λλ μ½κ² 볡μ λ©λλ€. μ§μμ μΈ κ°μΉλ μΉμΈ μ΄λ ₯, μ¬μ¬μ©ν μ μλ λΈλλ κ·μΉ, λ²μ μ°κ²°, μμ μ μΈ μ₯μ 볡ꡬμμ λμμΌ ν©λλ€.
2. μλνλ₯Ό μ°μ ν μλ§ λ λλ§ API
κ³ κ°μκ² FFmpeg λ¬Έλ²μ λ ΈμΆνκ³ μΆμ§ μμ μμ΄μ μλ₯Ό μν΄ μμ μ μΈ μλν¬μΈνΈ νλλ₯Ό μ 곡ν©λλ€. κ³ κ°μ λμμ URL, SRT URL, ν리μ μ΄λ¦, μ½λ°± URLμ 보λ΄κ³ , μλΉμ€λ ν리μ μ κ²μλ λͺ λ ΉμΌλ‘ λ³νν λ€ νμμ ν΅μΌν μμ κ²°κ³Όλ₯Ό λ°νν©λλ€.
Burn subtitles into videoλ λ―Έκ΅μμ μ 40ν κ²μλλ©° CPCλ $8.16μ
λλ€. κ²μλμ μμ§λ§ μλλ μ λν ꡬ체μ μ
λλ€. PAA μ§λ¬ΈμΈ βSRT μλ§μ λμμμ μꡬμ μΌλ‘ μ
νλ €λ©΄ μ΄λ»κ² ν΄μΌ νλμ?βλ μ¬μ€μ μ ν μꡬμ¬νκ³Ό κ°μ΅λλ€.
MVPμλ μΈμ¦, μμ² κ²μ¦, Rendi μμ μ°κ²°, λ©±λ±μ± ν€, μΉν κ²μ¦, μ¬μλμ μμ ν μν κ΄λ¦¬, μ¬μ©λ κΈ°λ‘μ΄ νμν©λλ€. λ¬Έμ λ μ ν΅μ λλ€. κ²μλ§μΌλ‘λ μ¬μ μ μ§ν±ν μ μκ³ , Rendiκ° μ΄λ―Έ κΈ°λ° APIλ₯Ό μ 곡ν©λλ€. μ΄ μ€κ° μλΉμ€κ° μ νλ°μΌλ €λ©΄ μμ΄μ μ μ°λ, ν리μ , μ΄μ κ°μμ±, μ§μμμ μ°μλ₯Ό λ§λ€μ΄μΌ ν©λλ€.
3. μλ§ μ¬μ κ²μμ λ κ°μ§ κ²°κ³Όλ¬Ό μΈκ³ μμ€ν
νλμ μ΅μ’ λμμμ SRT νλκ° λ§λμ§ νμΈν λ€μ, μΉμΈλ μ‘°ν©μΌλ‘ κ³ μ μλ§ κ²μμ© MP4μ μ νν νΈλμ ν¬ν¨ν λ©νμ© MP4λ₯Ό ν¨κ» λ§λλ κ²μ κ΄λ¬Έμ ꡬμΆν©λλ€. μ΄λ€ μλ§ λ²μ μ΄ μ΄λ€ νΈμ§λ³Έμ λμνλμ§ μκΎΈ λμΉλ νμ§νΒ·κ΅μ‘Β·λ―Έλμ΄ μ΄μ νμ΄ λμμ λλ€.
μ€μ PAA μ§λ¬ΈμΈ βSRT μλ§μ λμμμ μ΄λ»κ² μΆκ°νλμ?β μμλ νμ¬ κ²μ κ²°κ³Όμμ κ³ μ μλ§κ³Ό μ νν μλ§μ νΌλνλ μ¬λ‘κ° λ°λ³΅ν΄μ λνλ©λλ€. μ΄ μ νμ μ΄μμκ° μ»¨ν μ΄λ λ΄λΆ ꡬ쑰λ₯Ό μ§μ κ²°μ νμ§ μμλ λ μμ μ λͺ¨λ ν΄κ²°ν©λλ€.
MVPμλ μλ§ κ΅¬κ° λΆμ, μ¬μ μκ° λΉκ΅, μμ μμ 미리보기, λ²μ ID, ν΅μ λ FFmpeg μ²λ¦¬ λ°©μ λ κ°μ§, μΉμΈ κΈ°λ‘μ΄ νμν©λλ€. λ¬Έμ λ κΈ°λ³Έμ μΈ SRT κ²μ¦λ§μΌλ‘λ νλμ κΈ°λ₯μΌ λΏ νμ¬κ° λκΈ° μ΄λ ΅λ€λ μ μ λλ€. νμ΄ μΆμ μ μ°¨μ μ νμ κ³μ λ λ§νΌ κ²μ μ΄λ ₯κ³Ό μΈκ³ ν΅μ κ° κ°μΉ μμ΄μΌ ν©λλ€.
νκ³μ μμ§ν κ²°λ‘
Rendiλ μ΄ μν¬νλ‘μμ FFmpeg μΈνλΌλ₯Ό μμ μ€λλ€. νμ§λ§ νΈμ§ μ± μκΉμ§ μμ μ£Όμ§λ μμ΅λλ€. μ μ¬λ³Έμ μμ νκ±°λ μλͺ»λ νμ΄λ°μ κ³ μΉκ³ , μ½κΈ° μ’μ μ€λ°κΏμ μ ννκ±°λ, κ³ μ μλ§μ΄ μ¬λ°λ₯Έ μ κ·Όμ± νμμΈμ§ νλ¨νμ§ μμ΅λλ€.
λν μλ§ λ²μΈμ 무μμ€λ‘ λ§λ€ μ μμ΅λλ€. μλ§ νν°κ° λΉλμ€ νλ μμ λ°κΎΈλ―λ‘ μμμ μ¬μΈμ½λ©λ©λλ€. νμ§, μ€ν μκ°, μΆλ ₯ ν¬κΈ°λ λͺ λ Ήκ³Ό μλ³Έμ λ°λΌ λ¬λΌμ§λλ€. κΈ°λ³Έ API μμ μ νμ 300μ΄μ΄λ©°, μμ²ν μ μλ μ΅λ μκ°μ μκΈμ κ° μ ν©λλ€. μ€λ 걸리거λ μ°μ°λμ΄ λ§μ μμ μλ μ€μ μΈμ½λ© μκ°μ μμ©ν λͺ λ Ή μ€ν νλμ μκΈμ κ° νμν©λλ€.
λ¬΄λ£ λΈλΌμ°μ λκ΅¬λ‘ μΆ©λΆν μΌνμ± ν΄λ¦½μ΄λΌλ©΄ μ΄ λ°©μμ μ°μ§ μμλ λ©λλ€. μμ²μκ° μλ§μ μΌκ³ κΊΌμΌ νλ€λ©΄ μλ§μ μμμ μ νμ§ μμ΅λλ€. κ²μνμ§ μμ μ€νμΌμ μΌκ΄ μμ μ μ μ©ν΄μλ μ λ©λλ€. μΉμΈλ λμΌν λ§λ¬΄λ¦¬ κ·μΉμ λ§μ μμ μ μμ μ μΌλ‘ λ°λ³΅ν΄μΌ ν λ Rendiμ μ₯μ μ΄ λΆλͺ ν΄μ§λλ€.
μμμΌμ λ°λ‘ ν μΌ
μ§§κ³ μΉμΈλ λμμ νλμ μ΅μ’ SRTλ₯Ό μ€λΉν©λλ€. λ λ€ Rendiκ° κ°μ Έμ¬ μ μλ URLμ λ λ€μ μνλ μ€νμΌλ‘ μμ νμ΄λ‘λλ₯Ό μ€ννκ³ , λ°νλ λ©νλ°μ΄ν°λ₯Ό νμΈνλ©°, μ§μνλ κ°μ₯ μμ νλ©΄μμ μ 체 MP4λ₯Ό μμ²ν©λλ€. κ²μλ₯Ό ν΅κ³Όν λ€μλ§ μΉμΈλ λͺ λ Ήμ ν리μ μΌλ‘ μ μ₯ν©λλ€. λ§μ§λ§μΌλ‘ μν¬νλ‘κ° λμμκ³Ό μλ§μ μΉμΈ μλ£λ‘ νμνλ μ§μ μ μ΄ ν리μ μ μ°κ²°ν©λλ€.
SRT μλ§μ λμμμ μꡬμ μΌλ‘ μ νλ €λ©΄ μ΄λ»κ² ν΄μΌ νλμ?
FFmpegμ subtitles λΉλμ€ νν°λ‘ λͺ¨λ νλ μμ 문ꡬλ₯Ό λ λλ§ν λ€ μ μμμ μΈμ½λ©ν©λλ€. Rendiμμλ μλ³Έ λμμκ³Ό SRTλ₯Ό in_ λ³μΉμ μ°κ²°νκ³ , MP4 μ΄λ¦μ out_ λ³μΉμ μ°κ²°ν λ€μ λͺ
λ Ήμ μ μΆν©λλ€. SUCCESSκ° λ λκΉμ§ κΈ°λ€λ¦° λ€ λ€μ΄λ‘λνκ³ κ²μν©λλ€.
λμμμ μλ§μ μ νλ λ°©λ²μ 무μμΈκ°μ?
μ΅μ’
λμμκ³Ό μΉμΈλ μλ§ νμΌμμ μμν©λλ€. λ¬Έκ΅¬κ° νμ 보μ¬μΌ νλ€λ©΄ κ³ μ μλ§ λͺ
λ Ήμ μ ννκ³ , μμ²μκ° μ§μ μ μ΄ν΄μΌ νλ€λ©΄ μ νν μλ§ νΈλμ μ¬μ©ν©λλ€. Rendiκ° λ¬Έμνν κ³ μ μλ§ λ°©μμ -vf subtitles={{in_srt}}λ₯Ό μ¬μ©νλ©° λΉλμ€λ₯Ό μ¬μΈμ½λ©ν©λλ€.
SRT μλ§μ λμμμ μ΄λ»κ² μΆκ°νλμ?
SRTλ₯Ό μμ ν½μ
μ μ§μ μ
νκ±°λ λ³λ μλ§ νΈλμΌλ‘ 첨λΆν μ μμ΅λλ€. μμμ μ
νλ©΄ μ΄λμλ κ°μ λͺ¨μ΅μΌλ‘ νμλμ§λ§ λ μ μμ΅λλ€. μννΈ νΈλμ νΈμ§κ³Ό μ νμ΄ κ°λ₯ν©λλ€. Rendiλ λ²μΈμ© subtitles νν°μ μ νν MP4 νΈλμ© mov_textλ₯Ό λͺ¨λ λ¬Έμννκ³ μμ΅λλ€.
HandBrakeλ‘ λμμμ μλ§μ μ νλ €λ©΄ μ΄λ»κ² νλμ?
HandBrakeλ μΈλΆ SRTλ₯Ό μΆκ°νκ³ λ²μΈμΌλ‘ νμν μ μλ λ°μ€ν¬ν± μΈν°νμ΄μ€λ₯Ό μ 곡ν©λλ€. κ°λ μλμΌλ‘ μ²λ¦¬ν λ ν©λ¦¬μ μΈ μ νμ λλ€. Rendiμ μν μ λ€λ¦ λλ€. λ λλ§μ μλν μμ€ν μμ λ£μ΄μΌ ν λ κ°μ FFmpeg μμ μ APIλ‘ μ μΆνκ² ν΄μ€λλ€.
μ΄μ²λΌ κ²μλ λ―Έλμ΄ νμ΄νλΌμΈμ λΉμ¦λμ€μ ꡬμΆνλ €λ©΄ AI νλ‘λμ μμ€ν μ νμΈν΄ 보μΈμ.
- κ²μμΌ
- μΉ΄ν κ³ λ¦¬
- Build
- μΈμ΄







