Skip to content

๐Ÿš€ ffmpeg๋Š” stderr๋กœ ๋””๋ฒ„๊น…์„ ํ•˜๋Š” ์ด์œ 

Kang Chaeryeon edited this page Nov 11, 2024 · 1 revision

ffmpeg ์ฝ”๋“œ ์ง„ํ–‰์‹œ ์—๋Ÿฌ์ฒ˜๋ฆฌ: stderr๋กœ catch ์ง„ํ–‰

ffmpeg('Balance.mp3', { timeout: 432000 })
  .addOptions([
    '-c:a aac',
    '-b:a 128k',
    '-hls_time 10',
    '-hls_list_size 0',
    '-f hls'
  ])
  .output('music/output.m3u8')
  .on('progress', (progress) => {
    console.log('Processing: ', progress.percent, '% done');
  })
  .on('start', (commandLine) => {
    console.log('FFmpeg command:', commandLine);
  })
  .on('error', (err, stdout, stderr) => {
    console.error('FFmpeg Error:', err);
    console.error('FFmpeg stdout:', stdout);
    console.error('FFmpeg stderr:', stderr);
    console.error('Error stack:', err.stack);
  }).run();

js module์—์„œ ์‚ฌ์šฉํ•˜๋Š” ffmpeg๋Š” ํ•ด๋‹น CLI์— ์„ธํŒ…์„ ๋„์™€์ฃผ๋Š” ์—ญํ• ์„ ์ง„ํ–‰ํ•  ๋ฟ, ์‹ค์ œ ffmpeg๋Š” ํ„ฐ๋ฏธ๋„ ์œ„์—์„œ ๋ช…๋ น์–ด๋กœ ๋™์ž‘์„ ์ง„ํ–‰

๊ทธ๋Ÿฌ๋ฏ€๋กœ NodeJS์—์„œ ๋ฐœ์ƒ๋˜๋Š” ์—๋Ÿฌ ๋ฉ”์„ธ์ง€(err)๋Š” ๋‹จํŽธ์ ์œผ๋กœ ๋‚˜์™€์„œ ๋””ํ…Œ์ผ์„ ์žก์•„์ฃผ์ง€๋ฅผ ๋ชปํ•จ

FFmpeg Error: Error: ffmpeg exited with code 1: Conversion failed!

Standard output stream์—์„œ ๋ฐœ์ƒ๋˜๋Š” ์—๋Ÿฌ ๋ฉ”์„ธ์ง€์— ๊ด€ํ•œ ์ถœ๋ ฅ์„ ์ง„ํ–‰์‹œ์—๋Š” stderr๋ฅผ ์บ์น˜ํ•˜์—ฌ ๋ฉ”์„ธ์ง€๋ฅผ ์ถœ๋ ฅํ•ด์ค˜์•ผํ•จ

FFmpeg stderr: Could not write header for output file #0 (incorrect codec parameters ?): No such file or directory
FFmpeg stderr: Error initializing output stream 0:0 -- 
FFmpeg stderr: [aac @ 0x7fadbd819400] Qavg: nan
FFmpeg stderr: Conversion failed!

err vs stderr ์–ด๋–ป๊ฒŒ ๋‹ค๋ฅผ๊นŒ?

err:

  • Node JS์—์„œ ๋ฐœ์ƒ์‹œํ‚ค๋Š” ์—๋Ÿฌ object
  • ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰ ๊ณผ์ •์—์„œ ๋ฐœ์ƒ๋˜๋Š” ์—๋Ÿฌ์— ๊ด€ํ•œ ์ •๋ณด๋ฅผ ๋‹ด๊ณ  ์žˆ์Œ
  • message, stack trace, error code์— ๊ด€ํ•œ ์ •๋ณด๊ฐ€ ์ฃผ๋กœ ๋“ค์–ด๊ฐ

stderr:

  • ํ”„๋กœ๊ทธ๋žจ์˜ ์‹คํ–‰ ๊ณผ์ •๊ณผ๋Š” ๋ณ„๊ฐœ๋กœ standard I/O stream์— ๊ด€ํ•œ ์ •๋ณด๋ฅผ ๋‹ด๊ณ  ์žˆ์Œ

inear

๊ธฐ์ˆ  ๊ณต์œ 

๐Ÿš€ ffmpeg๋Š” stderr๋กœ ๋””๋ฒ„๊น…์„ ํ•˜๋Š” ์ด์œ 
๐Ÿš€ HLS ํ”„๋กœํ† ์ฝœ์— ๊ด€ํ•œ ์ •๋ฆฌ ๋ฐ FFmpeg ์‚ฌ์šฉ๊ธฐ
๐Ÿš€ ๋น„ํŠธ๋Š” tsconfig.json์ด ์„ธ ๊ฐœ?
๐Ÿš€ NestJS ๊ธฐ๋ณธ ๊ฐœ๋… - Modules
๐Ÿš€ Socket.io ์ตœ(๊ฐ•)์ ํ™”
๐Ÿš€ ๋„์ปค์™€ nginx์˜ ์‚ฌ์šฉ๊ธฐ
๐Ÿš€ ๋ถ€ํ•˜ํ…Œ์ŠคํŠธ๋ฅผ ํ•ด๋ณด์ž

๊ฐœ๋ฐœ ์ผ์ง€

๐Ÿš€ FSD ์‚ฌ์šฉ๊ธฐ, ๊ทผ๋ฐ ์ด์ œ ๋‚˜๋งŒ์˜ ๊ทœ์น™์„ ๊ณ๋“ค์ธ
๐Ÿš€ CICD ๊ตฌ์กฐ ์ˆ˜์ •
๐Ÿš€ ์•จ๋ฒ” ๋‹จ์œ„๋กœ ์ŠคํŠธ๋ฆฌ๋ฐ ํ•˜๊ธฐ (with HLS)
๐Ÿš€ HLS๋กœ ์Œ์•… ์ฃผ๊ณ ๋ฐ›๊ธฐ
๐Ÿš€ vite + react + typescript ํ™˜๊ฒฝ์—์„œ path alias ์„ค์ •
๐Ÿš€ React Scan์ด ๋ญ์ฃ ?
๐Ÿš€ ๋กœ์ปฌ ํ™˜๊ฒฝ ๊ฐœ๋ฐœ ๋ชจ๋“œ ๋ฐฐํฌ
๐Ÿš€ ์•จ๋ฒ” ์ „์ฒด๋ฅผ ์ŠคํŠธ๋ฆฌ๋ฐํ•œ๋‹ค๊ณ ? (with HLS)
๐Ÿš€ ์ฝ”๋“œ์˜ ์•ˆ์ •์„ฑ์„ ๋†’์ด๊ธฐ ์œ„ํ•ด ํ…Œ์ŠคํŠธ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•ด๋ณด์ž

ํŠธ๋Ÿฌ๋ธ” ์ŠˆํŒ…

๐Ÿš€ ์ƒˆ๋กœ๊ณ ์นจ ์‹œ HLS ERROR
๐Ÿš€ input ํƒœ๊ทธ์— ํ•œ๊ธ€ ์ž…๋ ฅ ํ›„, Enter๋ฅผ ๋ˆ„๋ฅด๋ฉด ํ•จ์ˆ˜๊ฐ€ ๋‘๋ฒˆ ํ˜ธ์ถœ๋˜๋Š” ์˜ค๋ฅ˜
๐Ÿš€ nginx proxy pass๋ฅผ ๋ฐ”๊ฟจ๋”๋‹ˆ ์ƒ๊ธด ์—๋Ÿฌ - ์Šค์›จ๊ฑฐ ์ธ์‹ ๋ฌธ์ œ
๐Ÿš€ ๋ฐฐํฌ ํ™˜๊ฒฝ์—์„œ ํด๋ผ์ด์–ธํŠธ-์„œ๋ฒ„ WS handshake
๐Ÿš€ ๋ Œ๋”๋ง ๋ฒ”์ธ์€ ํ•˜๋‚˜!

ํ˜‘์—… ๊ทœ์น™

๐ŸŒˆ ๊ทธ๋ผ์šด๋“œ ๋ฃฐ
๐Ÿฅ” ํŒ€์› ์†Œ๊ฐœ
๐Ÿ”Ž ์ฝ”๋“œ & ๊นƒ ์ปจ๋ฒค์…˜
๐ŸŒณ ๊นƒ branch ์ „๋žต
๐Ÿ“Œ ๋…ธ์…˜ ๋ฌธ์„œ ์ €์žฅ์†Œ

ํ”„๋กœ์ ํŠธ ๊ธฐํš

๐ŸŽจ ํ”ผ๊ทธ๋งˆ
๐Ÿง‘โ€๐Ÿ’ป ๊ธฐํš ๊ณต์œ  ๋ฐœํ‘œ ์ž๋ฃŒ
๐ŸŽค 2์ฃผ์ฐจ ๋ฐœํ‘œ ์ž๋ฃŒ
๐Ÿ˜Ž ๋ฐฑ๋กœ๊ทธ

๋ฐ์ผ๋ฆฌ ์Šคํฌ๋Ÿผ

๐Ÿ“ 1์ฃผ์ฐจ
๐Ÿ“ 2์ฃผ์ฐจ
๐Ÿ“ 3์ฃผ์ฐจ
๐Ÿ“ 4์ฃผ์ฐจ
๐Ÿ“ 5์ฃผ์ฐจ

์ฃผ๊ฐ„ ๊ณ„ํš์„œ

๐Ÿ—“๏ธ 1์ฃผ์ฐจ
๐Ÿ—“๏ธ 2์ฃผ์ฐจ
๐Ÿ—“๏ธ 3์ฃผ์ฐจ
๐Ÿ—“๏ธ 4์ฃผ์ฐจ
๐Ÿ—“๏ธ 5์ฃผ์ฐจ

๊ทธ๋ฃน ํšŒ๊ณ 

โœจ 1์ฃผ์ฐจ
โœจ 2์ฃผ์ฐจ
โœจ 3์ฃผ์ฐจ
โœจ 4์ฃผ์ฐจ


view

Clone this wiki locally