{"id":123030,"date":"2026-01-29T11:54:41","date_gmt":"2026-01-29T04:54:41","guid":{"rendered":"https:\/\/tino.vn\/blog\/?p=123030"},"modified":"2026-01-29T11:55:40","modified_gmt":"2026-01-29T04:55:40","slug":"ffmpeg-la-gi","status":"publish","type":"post","link":"https:\/\/tino.vn\/blog\/ffmpeg-la-gi\/","title":{"rendered":"FFmpeg l\u00e0 g\u00ec? H\u01b0\u1edbng d\u1eabn t\u00edch h\u1ee3p FFmpeg v\u00e0o n8n \u0111\u1ec3 t\u1ef1 \u0111\u1ed9ng h\u00f3a x\u1eed l\u00fd video (2026)"},"content":{"rendered":"\n<p><strong>Trong b\u1ed1i c\u1ea3nh n\u1ed9i dung \u0111a ph\u01b0\u01a1ng ti\u1ec7n ng\u00e0y c\u00e0ng chi\u1ebfm \u01b0u th\u1ebf, nhu c\u1ea7u x\u1eed l\u00fd video v\u00e0 \u00e2m thanh t\u1ef1 \u0111\u1ed9ng tr\u1edf n\u00ean c\u1ea5p thi\u1ebft h\u01a1n bao gi\u1edd h\u1ebft. FFmpeg n\u1ed5i l\u00ean nh\u01b0 m\u1ed9t gi\u1ea3i ph\u00e1p h\u00e0ng \u0111\u1ea7u cho c\u00e1c t\u00e1c v\u1ee5 n\u00e0y nh\u1edd t\u00ednh m\u00e3 ngu\u1ed3n m\u1edf, kh\u1ea3 n\u0103ng t\u01b0\u01a1ng th\u00edch r\u1ed9ng r\u00e3i v\u00e0 hi\u1ec7u su\u1ea5t cao. V\u1eady c\u1ee5 th\u1ec3 FFmpeg l\u00e0 g\u00ec? T\u1ea1i sao n\u00ean k\u1ebft h\u1ee3p v\u1edbi <a href=\"https:\/\/tino.vn\/blog\/n8n-la-gi\/\" target=\"_blank\" data-type=\"post\" data-id=\"104774\" rel=\"noreferrer noopener\">n8n<\/a>? C\u00e1ch c\u00e0i \u0111\u1eb7t v\u00e0 s\u1eed d\u1ee5ng nh\u01b0 th\u1ebf n\u00e0o? C\u00f9ng Tino t\u00ecm hi\u1ec3u qua b\u00e0i vi\u1ebft d\u01b0\u1edbi \u0111\u00e2y nh\u00e9!<\/strong><\/p>\n\n\n\n<h2 id=\"T\u1ed5ng_quan_v\u1ec1_FFmpeg\">T\u1ed5ng quan v\u1ec1 FFmpeg<\/h2>\n\n\n\n<h3 id=\"FFmpeg_l\u00e0_g\u00ec?\"><strong>FFmpeg l\u00e0 g\u00ec?<\/strong><\/h3>\n\n\n\n<p><a href=\"https:\/\/www.ffmpeg.org\/\" target=\"_blank\" data-type=\"link\" data-id=\"https:\/\/www.ffmpeg.org\/\" rel=\"noreferrer noopener nofollow\">FFmpeg<\/a> l\u00e0 m\u1ed9t d\u1ef1 \u00e1n ph\u1ea7n m\u1ec1m m\u00e3 ngu\u1ed3n m\u1edf, cung c\u1ea5p b\u1ed9 th\u01b0 vi\u1ec7n v\u00e0 ch\u01b0\u01a1ng tr\u00ecnh chuy\u00ean d\u1ee5ng \u0111\u1ec3 x\u1eed l\u00fd d\u1eef li\u1ec7u \u0111a ph\u01b0\u01a1ng ti\u1ec7n. D\u1ef1 \u00e1n n\u00e0y \u0111\u01b0\u1ee3c kh\u1edfi x\u01b0\u1edbng b\u1edfi Fabrice Bellard v\u00e0o n\u0103m 2000 v\u00e0 hi\u1ec7n nay \u0111ang \u0111\u01b0\u1ee3c duy tr\u00ec, ph\u00e1t tri\u1ec3n b\u1edfi m\u1ed9t c\u1ed9ng \u0111\u1ed3ng l\u1eadp tr\u00ecnh vi\u00ean to\u00e0n c\u1ea7u.\u00a0<\/p>\n\n\n\n<p>FFmpeg ho\u1ea1t \u0111\u1ed9ng ch\u1ee7 y\u1ebfu d\u1ef1a tr\u00ean giao di\u1ec7n d\u00f2ng l\u1ec7nh, cho ph\u00e9p ng\u01b0\u1eddi d\u00f9ng th\u1ef1c hi\u1ec7n c\u00e1c thao t\u00e1c ph\u1ee9c t\u1ea1p nh\u01b0 gi\u1ea3i m\u00e3, m\u00e3 h\u00f3a, chuy\u1ec3n m\u00e3, tr\u1ed9n k\u00eanh v\u00e0 ph\u00e1t tr\u1ef1c tuy\u1ebfn. Nh\u1edd kh\u1ea3 n\u0103ng t\u01b0\u01a1ng th\u00edch cao v\u1edbi \u0111a s\u1ed1 c\u00e1c ki\u1ebfn tr\u00fac ph\u1ea7n c\u1ee9ng v\u00e0 h\u1ec7 \u0111i\u1ec1u h\u00e0nh, b\u1ed9 c\u00f4ng c\u1ee5 n\u00e0y \u0111\u00e3 tr\u1edf th\u00e0nh n\u1ec1n t\u1ea3ng c\u1ed1t l\u00f5i cho nhi\u1ec1u \u1ee9ng d\u1ee5ng ph\u00e1t media v\u00e0 ph\u1ea7n m\u1ec1m bi\u00ean t\u1eadp video ph\u1ed5 bi\u1ebfn tr\u00ean th\u1ebf gi\u1edbi.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img decoding=\"async\" width=\"700\" height=\"375\" src=\"https:\/\/tino.vn\/blog\/wp-content\/uploads\/2026\/01\/ffmpeg-la-gi-1.png\" alt=\"FFmpeg l\u00e0 g\u00ec?\" class=\"wp-image-123064\" title=\"\" srcset=\"https:\/\/tino.vn\/blog\/wp-content\/uploads\/2026\/01\/ffmpeg-la-gi-1.png 700w, https:\/\/tino.vn\/blog\/wp-content\/uploads\/2026\/01\/ffmpeg-la-gi-1-300x161.png 300w\" sizes=\"(max-width: 700px) 100vw, 700px\" \/><figcaption class=\"wp-element-caption\"><strong>FFmpeg l\u00e0 g\u00ec?<\/strong><\/figcaption><\/figure>\n<\/div>\n\n\n<h3 id=\"C\u00e1c_t\u00ednh_n\u0103ng_ch\u00ednh_c\u1ee7a_FFmpeg\"><strong>C\u00e1c t\u00ednh n\u0103ng ch\u00ednh c\u1ee7a FFmpeg<\/strong><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Chuy\u1ec3n \u0111\u1ed5i \u0111\u1ecbnh d\u1ea1ng \u0111a d\u1ea1ng:<\/strong> H\u1ed7 tr\u1ee3 chuy\u1ec3n \u0111\u1ed5i qua l\u1ea1i gi\u1eefa h\u1ea7u h\u1ebft c\u00e1c \u0111\u1ecbnh d\u1ea1ng video v\u00e0 \u00e2m thanh hi\u1ec7n h\u00e0nh, t\u1eeb nh\u1eefng \u0111\u1ecbnh d\u1ea1ng c\u0169 \u0111\u1ebfn c\u00e1c chu\u1ea9n n\u00e9n hi\u1ec7n \u0111\u1ea1i nh\u1ea5t.<\/li>\n\n\n\n<li><strong>N\u00e9n v\u00e0 t\u1ed1i \u01b0u h\u00f3a dung l\u01b0\u1ee3ng:<\/strong> Gi\u1ea3m thi\u1ec3u k\u00edch th\u01b0\u1edbc t\u1ec7p tin video ho\u1eb7c \u00e2m thanh trong khi v\u1eabn duy tr\u00ec ch\u1ea5t l\u01b0\u1ee3ng \u0111\u1ea7u ra \u1edf m\u1ee9c mong mu\u1ed1n.<\/li>\n\n\n\n<li><strong>X\u1eed l\u00fd lu\u1ed3ng tr\u1ef1c ti\u1ebfp:<\/strong> Cung c\u1ea5p kh\u1ea3 n\u0103ng thu, m\u00e3 h\u00f3a v\u00e0 ph\u00e1t lu\u1ed3ng video th\u1eddi gian th\u1ef1c t\u1edbi c\u00e1c m\u00e1y ch\u1ee7 media ho\u1eb7c n\u1ec1n t\u1ea3ng livestream.<\/li>\n\n\n\n<li><strong>Ch\u1ec9nh s\u1eeda v\u00e0 \u00e1p d\u1ee5ng b\u1ed9 l\u1ecdc:<\/strong> Cho ph\u00e9p th\u1ef1c hi\u1ec7n c\u00e1c t\u00e1c v\u1ee5 bi\u00ean t\u1eadp nh\u01b0 c\u1eaft gh\u00e9p, thay \u0111\u1ed5i k\u00edch th\u01b0\u1edbc, xoay khung h\u00ecnh, ch\u00e8n logo ho\u1eb7c \u0111i\u1ec1u ch\u1ec9nh m\u00e0u s\u1eafc.<\/li>\n\n\n\n<li><strong>T\u00e1ch v\u00e0 g\u1ed9p d\u1eef li\u1ec7u:<\/strong> H\u1ed7 tr\u1ee3 tr\u00edch xu\u1ea5t ri\u00eang ph\u1ea7n \u00e2m thanh t\u1eeb video, t\u00e1ch h\u00ecnh \u1ea3nh t\u0129nh ho\u1eb7c g\u1ed9p nhi\u1ec1u ngu\u1ed3n d\u1eef li\u1ec7u th\u00e0nh m\u1ed9t t\u1ec7p tin duy nh\u1ea5t.<\/li>\n\n\n\n<li><strong>Ph\u00e2n t\u00edch th\u00f4ng s\u1ed1 k\u1ef9 thu\u1eadt:<\/strong> C\u00f4ng c\u1ee5 ffprobe \u0111i k\u00e8m gi\u00fap ki\u1ec3m tra v\u00e0 hi\u1ec3n th\u1ecb chi ti\u1ebft c\u00e1c th\u00f4ng tin k\u1ef9 thu\u1eadt c\u1ee7a t\u1ec7p tin nh\u01b0 codec, bitrate, \u0111\u1ed9 ph\u00e2n gi\u1ea3i v\u00e0 t\u1ed1c \u0111\u1ed9 khung h\u00ecnh.<\/li>\n<\/ul>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img decoding=\"async\" width=\"700\" height=\"375\" src=\"https:\/\/tino.vn\/blog\/wp-content\/uploads\/2026\/01\/ffmpeg-la-gi-2.png\" alt=\"T\u1ea1i sao n\u00ean t\u00edch h\u1ee3p FFmpeg v\u00e0o quy tr\u00ecnh n8n?\" class=\"wp-image-123065\" title=\"\" srcset=\"https:\/\/tino.vn\/blog\/wp-content\/uploads\/2026\/01\/ffmpeg-la-gi-2.png 700w, https:\/\/tino.vn\/blog\/wp-content\/uploads\/2026\/01\/ffmpeg-la-gi-2-300x161.png 300w\" sizes=\"(max-width: 700px) 100vw, 700px\" \/><figcaption class=\"wp-element-caption\"><strong>T\u1ea1i sao n\u00ean t\u00edch h\u1ee3p FFmpeg v\u00e0o quy tr\u00ecnh n8n?<\/strong><\/figcaption><\/figure>\n<\/div>\n\n\n<h3 id=\"T\u1ea1i_sao_n\u00ean_t\u00edch_h\u1ee3p_FFmpeg_v\u00e0o_quy_tr\u00ecnh_n8n?\"><strong>T\u1ea1i sao n\u00ean t\u00edch h\u1ee3p FFmpeg v\u00e0o quy tr\u00ecnh n8n?<\/strong><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>T\u1ef1 \u0111\u1ed9ng h\u00f3a quy tr\u00ecnh th\u1ee7 c\u00f4ng:<\/strong> Lo\u1ea1i b\u1ecf ho\u00e0n to\u00e0n s\u1ef1 can thi\u1ec7p c\u1ee7a con ng\u01b0\u1eddi trong c\u00e1c t\u00e1c v\u1ee5 l\u1eb7p \u0111i l\u1eb7p l\u1ea1i nh\u01b0 n\u00e9n video hay \u0111\u1ed5i \u0111u\u00f4i t\u1ec7p tin, gi\u00fap ti\u1ebft ki\u1ec7m t\u1ed1i \u0111a th\u1eddi gian.<\/li>\n\n\n\n<li><strong>Ti\u1ebft ki\u1ec7m chi ph\u00ed v\u1eadn h\u00e0nh:<\/strong> Vi\u1ec7c s\u1eed d\u1ee5ng FFmpeg ngay tr\u00ean m\u00e1y ch\u1ee7 ch\u1ee9a n8n gi\u00fap doanh nghi\u1ec7p kh\u00f4ng ph\u1ea3i tr\u1ea3 ph\u00ed cho c\u00e1c d\u1ecbch v\u1ee5 API x\u1eed l\u00fd video b\u00ean th\u1ee9 ba \u0111\u1eaft \u0111\u1ecf.<\/li>\n\n\n\n<li><strong>Kh\u1ea3 n\u0103ng x\u1eed l\u00fd h\u00e0ng lo\u1ea1t:<\/strong> H\u1ec7 th\u1ed1ng k\u1ebft h\u1ee3p n\u00e0y c\u00f3 th\u1ec3 ti\u1ebfp nh\u1eadn v\u00e0 x\u1eed l\u00fd li\u00ean t\u1ee5c h\u00e0ng ngh\u00ecn t\u1ec7p tin m\u00e0 kh\u00f4ng g\u1eb7p t\u00ecnh tr\u1ea1ng qu\u00e1 t\u1ea3i hay sai s\u00f3t nh\u01b0 khi th\u1ef1c hi\u1ec7n b\u1eb1ng tay.<\/li>\n\n\n\n<li><strong>T\u00f9y bi\u1ebfn l\u1ec7nh linh ho\u1ea1t:<\/strong> Th\u00f4ng qua Execute Command Node trong n8n, ng\u01b0\u1eddi d\u00f9ng c\u00f3 th\u1ec3 ch\u1ea1y b\u1ea5t k\u1ef3 c\u00e2u l\u1ec7nh FFmpeg ph\u1ee9c t\u1ea1p n\u00e0o \u0111\u1ec3 \u0111\u00e1p \u1ee9ng ch\u00ednh x\u00e1c nhu c\u1ea7u k\u1ef9 thu\u1eadt ri\u00eang bi\u1ec7t.<\/li>\n\n\n\n<li><strong>K\u1ebft n\u1ed1i li\u1ec1n m\u1ea1ch:<\/strong> D\u1ec5 d\u00e0ng thi\u1ebft l\u1eadp quy tr\u00ecnh kh\u00e9p k\u00edn, v\u00ed d\u1ee5: t\u1ef1 \u0111\u1ed9ng t\u1ea3i video t\u1eeb Google Drive, x\u1eed l\u00fd b\u1eb1ng FFmpeg, sau \u0111\u00f3 t\u1ea3i ng\u01b0\u1ee3c l\u1ea1i l\u00ean Cloud v\u00e0 g\u1eedi th\u00f4ng b\u00e1o ho\u00e0n t\u1ea5t qua Telegram.<\/li>\n<\/ul>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img decoding=\"async\" width=\"700\" height=\"375\" src=\"https:\/\/tino.vn\/blog\/wp-content\/uploads\/2026\/01\/ffmpeg-la-gi-3.png\" alt=\"T\u1ea1i sao n\u00ean t\u00edch h\u1ee3p FFmpeg v\u00e0o quy tr\u00ecnh n8n?\" class=\"wp-image-123066\" title=\"\" srcset=\"https:\/\/tino.vn\/blog\/wp-content\/uploads\/2026\/01\/ffmpeg-la-gi-3.png 700w, https:\/\/tino.vn\/blog\/wp-content\/uploads\/2026\/01\/ffmpeg-la-gi-3-300x161.png 300w\" sizes=\"(max-width: 700px) 100vw, 700px\" \/><figcaption class=\"wp-element-caption\"><strong>T\u1ea1i sao n\u00ean t\u00edch h\u1ee3p FFmpeg v\u00e0o quy tr\u00ecnh n8n?<\/strong><\/figcaption><\/figure>\n<\/div>\n\n\n<h2 id=\"H\u01b0\u1edbng_d\u1eabn_c\u00e0i_\u0111\u1eb7t_v\u00e0_s\u1eed_d\u1ee5ng_FFmpeg&nbsp;\">H\u01b0\u1edbng d\u1eabn c\u00e0i \u0111\u1eb7t v\u00e0 s\u1eed d\u1ee5ng FFmpeg&nbsp;<\/h2>\n\n\n\n<h3 id=\"Ph\u1ea7n_1:_Chu\u1ea9n_b\u1ecb_m\u00f4i_tr\u01b0\u1eddng_v\u00e0_ki\u1ec3m_tra_h\u1ec7_\u0111i\u1ec1u_h\u00e0nh\"><strong>Ph\u1ea7n 1: Chu\u1ea9n b\u1ecb m\u00f4i tr\u01b0\u1eddng v\u00e0 ki\u1ec3m tra h\u1ec7 \u0111i\u1ec1u h\u00e0nh<\/strong><\/h3>\n\n\n\n<p>Tr\u01b0\u1edbc khi c\u00e0i \u0111\u1eb7t b\u1ea5t k\u1ef3 c\u00f4ng c\u1ee5 n\u00e0o, vi\u1ec7c x\u00e1c \u0111\u1ecbnh ch\u00ednh x\u00e1c m\u00f4i tr\u01b0\u1eddng \u0111ang ch\u1ea1y b\u00ean trong Docker container l\u00e0 b\u1eaft bu\u1ed9c \u0111\u1ec3 ch\u1ecdn c\u00e2u l\u1ec7nh c\u00e0i \u0111\u1eb7t ph\u00f9 h\u1ee3p.<\/p>\n\n\n\n<h4 id=\"B\u01b0\u1edbc_1:_Truy_c\u1eadp_v\u00e0o_VPS\"><strong>B\u01b0\u1edbc 1: Truy c\u1eadp v\u00e0o VPS<\/strong><\/h4>\n\n\n\n<p><\/p>\n\n\n\n<p>B\u1ea1n c\u1ea7n s\u1eed d\u1ee5ng ph\u1ea7n m\u1ec1m nh\u01b0 <strong>PuTTY<\/strong> (tr\u00ean Windows) ho\u1eb7c <strong>Terminal<\/strong> (tr\u00ean macOS) \u0111\u1ec3 \u0111\u0103ng nh\u1eadp v\u00e0o VPS qua giao th\u1ee9c SSH.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>M\u1edf ph\u1ea7n m\u1ec1m, nh\u1eadp \u0111\u1ecba ch\u1ec9 IP c\u1ee7a VPS.<\/li>\n\n\n\n<li>Nh\u1eadp username (th\u01b0\u1eddng l\u00e0 <strong>root<\/strong>) v\u00e0 m\u1eadt kh\u1ea9u.<\/li>\n<\/ul>\n\n\n\n<h4 id=\"B\u01b0\u1edbc_2:_X\u00e1c_\u0111\u1ecbnh_t\u00ean_container_c\u1ee7a_n8n\"><strong>B\u01b0\u1edbc 2: X\u00e1c \u0111\u1ecbnh t\u00ean container c\u1ee7a n8n<\/strong><\/h4>\n\n\n\n<p><\/p>\n\n\n\n<p>Sau khi \u0111\u0103ng nh\u1eadp th\u00e0nh c\u00f4ng, h\u00e3y g\u00f5 l\u1ec7nh sau \u0111\u1ec3 xem danh s\u00e1ch c\u00e1c container \u0111ang ch\u1ea1y:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>docker ps<\/code><\/pre>\n\n\n\n<p>M\u00e0n h\u00ecnh s\u1ebd hi\u1ec7n ra m\u1ed9t danh s\u00e1ch. H\u00e3y t\u00ecm d\u00f2ng c\u00f3 ch\u1eef n8n \u1edf c\u1ed9t <strong>NAMES<\/strong>. Trong tr\u01b0\u1eddng h\u1ee3p n\u00e0y, container c\u1ea7n s\u1eed d\u1ee5ng c\u1ee7a Tino l\u00e0 <strong>n8n-n8n-1<\/strong>.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img decoding=\"async\" width=\"1024\" height=\"469\" src=\"https:\/\/tino.vn\/blog\/wp-content\/uploads\/2026\/01\/image-2-1024x469.png\" alt=\"X\u00e1c \u0111\u1ecbnh t\u00ean Container c\u1ee7a n8n\" class=\"wp-image-123047\" title=\"\" srcset=\"https:\/\/tino.vn\/blog\/wp-content\/uploads\/2026\/01\/image-2-1024x469.png 1024w, https:\/\/tino.vn\/blog\/wp-content\/uploads\/2026\/01\/image-2-300x138.png 300w, https:\/\/tino.vn\/blog\/wp-content\/uploads\/2026\/01\/image-2-768x352.png 768w, https:\/\/tino.vn\/blog\/wp-content\/uploads\/2026\/01\/image-2.png 1071w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\"><strong>X\u00e1c \u0111\u1ecbnh t\u00ean Container c\u1ee7a n8n<\/strong><\/figcaption><\/figure>\n<\/div>\n\n\n<h4 id=\"B\u01b0\u1edbc_3:_Ki\u1ec3m_tra_h\u1ec7_\u0111i\u1ec1u_h\u00e0nh_b\u00ean_trong_container\"><strong>B\u01b0\u1edbc 3: Ki\u1ec3m tra h\u1ec7 \u0111i\u1ec1u h\u00e0nh b\u00ean trong container<\/strong><\/h4>\n\n\n\n<p><\/p>\n\n\n\n<p>\u0110\u00e2y l\u00e0 b\u01b0\u1edbc quan tr\u1ecdng \u0111\u1ec3 bi\u1ebft container \u0111ang d\u00f9ng Alpine Linux hay Debian. H\u00e3y g\u00f5 l\u1ec7nh sau:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>docker exec -it n8n-n8n-1 cat \/etc\/os-release&nbsp;<\/code><\/pre>\n\n\n\n<p><em>L\u01b0u \u00fd: Nh\u1edb thay <strong>n8n-n8n-1<\/strong> b\u1eb1ng t\u00ean container c\u1ee7a b\u1ea1n.<\/em><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>N\u1ebfu k\u1ebft qu\u1ea3 hi\u1ec7n ra c\u00f3 d\u00f2ng <strong>ID=alpine<\/strong>: H\u1ec7 \u0111i\u1ec1u h\u00e0nh l\u00e0 Alpine Linux (ph\u1ed5 bi\u1ebfn nh\u1ea5t v\u1edbi n8n). Ch\u00fang ta s\u1ebd d\u00f9ng l\u1ec7nh apk.<\/li>\n\n\n\n<li>N\u1ebfu k\u1ebft qu\u1ea3 hi\u1ec7n ra c\u00f3 d\u00f2ng<strong> <\/strong><strong>ID=debian<\/strong> ho\u1eb7c <strong>ID=ubuntu<\/strong>: H\u1ec7 \u0111i\u1ec1u h\u00e0nh l\u00e0 Debian\/Ubuntu. Ch\u00fang ta s\u1ebd d\u00f9ng l\u1ec7nh apt-get.<\/li>\n<\/ul>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img decoding=\"async\" width=\"775\" height=\"263\" src=\"https:\/\/tino.vn\/blog\/wp-content\/uploads\/2026\/01\/image.png\" alt=\"Ki\u1ec3m tra h\u1ec7 \u0111i\u1ec1u h\u00e0nh b\u00ean trong container\" class=\"wp-image-123045\" title=\"\" srcset=\"https:\/\/tino.vn\/blog\/wp-content\/uploads\/2026\/01\/image.png 775w, https:\/\/tino.vn\/blog\/wp-content\/uploads\/2026\/01\/image-300x102.png 300w, https:\/\/tino.vn\/blog\/wp-content\/uploads\/2026\/01\/image-768x261.png 768w\" sizes=\"(max-width: 775px) 100vw, 775px\" \/><figcaption class=\"wp-element-caption\"><strong><strong>Ki\u1ec3m tra h\u1ec7 \u0111i\u1ec1u h\u00e0nh b\u00ean trong container<\/strong><\/strong><\/figcaption><\/figure>\n<\/div>\n\n\n<h3 id=\"Ph\u1ea7n_2:_H\u01b0\u1edbng_d\u1eabn_c\u00e0i_\u0111\u1eb7t_FFmpeg_(Ph\u01b0\u01a1ng_ph\u00e1p_Custom_Image)\"><strong>Ph\u1ea7n 2: H\u01b0\u1edbng d\u1eabn c\u00e0i \u0111\u1eb7t FFmpeg (Ph\u01b0\u01a1ng ph\u00e1p Custom Image)<\/strong><\/h3>\n\n\n\n<p>\u0110\u1ec3 FFmpeg kh\u00f4ng b\u1ecb m\u1ea5t \u0111i m\u1ed7i khi b\u1ea1n c\u1eadp nh\u1eadt ho\u1eb7c kh\u1edfi \u0111\u1ed9ng l\u1ea1i n8n, ch\u00fang ta kh\u00f4ng c\u00e0i \u0111\u1eb7t tr\u1ef1c ti\u1ebfp b\u1eb1ng d\u00f2ng l\u1ec7nh t\u1ea1m th\u1eddi. Thay v\u00e0o \u0111\u00f3 s\u1ebd t\u1ea1o m\u1ed9t &#8220;b\u1ea3n d\u1ef1ng&#8221; (Custom Image) ri\u00eang.<\/p>\n\n\n\n<h4 id=\"B\u01b0\u1edbc_1:_Di_chuy\u1ec3n_\u0111\u1ebfn_th\u01b0_m\u1ee5c_ch\u1ee9a_n8n\"><strong>B\u01b0\u1edbc 1: Di chuy\u1ec3n \u0111\u1ebfn th\u01b0 m\u1ee5c ch\u1ee9a n8n<\/strong><\/h4>\n\n\n\n<p><\/p>\n\n\n\n<p>B\u1ea1n c\u1ea7n t\u00ecm \u0111\u1ebfn th\u01b0 m\u1ee5c n\u01a1i ch\u1ee9a file <strong>docker-compose.yml<\/strong> \u0111ang d\u00f9ng \u0111\u1ec3 ch\u1ea1y n8n.&nbsp;<\/p>\n\n\n\n<p>Th\u00f4ng th\u01b0\u1eddng th\u01b0 m\u1ee5c n\u00e0y t\u00ean l\u00e0 <strong>n8n<\/strong>. N\u1ebfu kh\u00f4ng bi\u1ebft, b\u1ea1n c\u00f3 th\u1ec3 g\u00f5 l\u1ec7nh:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>ls -d *\/<\/code><\/pre>\n\n\n\n<p>N\u1ebfu v\u1eabn kh\u00f4ng th\u1ea5y, h\u00e3y ch\u1ee7 \u0111\u1ed9ng t\u00ecm file <strong>docker-compose.yml<\/strong>. V\u00ec n8n c\u1ee7a b\u1ea1n \u0111ang ch\u1ea1y n\u00ean ch\u1eafc ch\u1eafn file ph\u1ea3i \u1edf \u0111\u00e2u \u0111\u00f3 tr\u00ean VPS. D\u00f9ng l\u1ec7nh n\u00e0y \u0111\u1ec3 &#8220;truy v\u1ebft&#8221;:\u00a0<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>find \/ -name \"docker-compose.yml\" 2&gt;\/dev\/null<\/code><\/pre>\n\n\n\n<p>Sau khi ch\u1ea1y l\u1ec7nh b\u1ea1n s\u1ebd th\u1ea5y m\u1ed9t \u0111\u01b0\u1eddng d\u1eabn hi\u1ec7n ra,&nbsp;<\/p>\n\n\n\n<p><strong>V\u00ed d\u1ee5:<\/strong> Th\u01b0 m\u1ee5c ch\u1ee9a file docker-compose.yml c\u1ee7a Tino l\u00e0: <strong>opt\/n8n\/ <\/strong>&nbsp;(ch\u1ec9 c\u1ea7n quan t\u00e2m th\u01b0 m\u1ee5c n\u00e0o c\u00f3 <strong>n8n<\/strong> l\u00e0 \u0111\u01b0\u1ee3c)<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img decoding=\"async\" width=\"1017\" height=\"534\" src=\"https:\/\/tino.vn\/blog\/wp-content\/uploads\/2026\/01\/image-7.png\" alt=\"\" class=\"wp-image-123052\" title=\"\" srcset=\"https:\/\/tino.vn\/blog\/wp-content\/uploads\/2026\/01\/image-7.png 1017w, https:\/\/tino.vn\/blog\/wp-content\/uploads\/2026\/01\/image-7-300x158.png 300w, https:\/\/tino.vn\/blog\/wp-content\/uploads\/2026\/01\/image-7-768x403.png 768w\" sizes=\"(max-width: 1017px) 100vw, 1017px\" \/><figcaption class=\"wp-element-caption\"><strong> Di chuy\u1ec3n \u0111\u1ebfn th\u01b0 m\u1ee5c ch\u1ee9a n8n<\/strong><\/figcaption><\/figure>\n<\/div>\n\n\n<h4 id=\"B\u01b0\u1edbc_2:_T\u1ea1o_file_Dockerfile\"><strong>B\u01b0\u1edbc 2: T\u1ea1o file Dockerfile<\/strong><\/h4>\n\n\n\n<p><\/p>\n\n\n\n<p>Tr\u01b0\u1edbc ti\u00ean, h\u00e3y truy c\u1eadp th\u01b0 m\u1ee5c <strong>opt\/n8n\/<\/strong> b\u1eb1ng l\u1ec7nh:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>cd \/opt\/n8n<\/code><\/pre>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img decoding=\"async\" width=\"942\" height=\"532\" src=\"https:\/\/tino.vn\/blog\/wp-content\/uploads\/2026\/01\/image-6.png\" alt=\"Truy c\u1eadp th\u01b0 m\u1ee5c opt\/n8n\/\" class=\"wp-image-123051\" title=\"\" srcset=\"https:\/\/tino.vn\/blog\/wp-content\/uploads\/2026\/01\/image-6.png 942w, https:\/\/tino.vn\/blog\/wp-content\/uploads\/2026\/01\/image-6-300x169.png 300w, https:\/\/tino.vn\/blog\/wp-content\/uploads\/2026\/01\/image-6-768x434.png 768w\" sizes=\"(max-width: 942px) 100vw, 942px\" \/><figcaption class=\"wp-element-caption\"><strong>Truy c\u1eadp th\u01b0 m\u1ee5c opt\/n8n\/<\/strong><\/figcaption><\/figure>\n<\/div>\n\n\n<p>T\u1ea1i \u0111\u00e2y, ch\u00fang ta s\u1ebd t\u1ea1o m\u1ed9t file c\u1ea5u h\u00ecnh m\u1edbi t\u00ean l\u00e0 <strong>Dockerfile<\/strong>. G\u00f5 l\u1ec7nh:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>nano Dockerfile<\/code><\/pre>\n\n\n\n<p>H\u00e3y sao ch\u00e9p v\u00e0 d\u00e1n (click chu\u1ed9t ph\u1ea3i \u0111\u1ec3 d\u00e1n) n\u1ed9i dung sau v\u00e0o m\u00e0n h\u00ecnh nano:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>FROM dockerhub.tino.org\/library\/n8nio\/n8n:latest\n\nUSER root\n\nRUN apk add --no-cache ffmpeg\n\nUSER node<\/code><\/pre>\n\n\n\n<p><strong>Gi\u1ea3i th\u00edch:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>FROM<\/strong><strong>:<\/strong> L\u1ea5y n\u1ec1n t\u1ea3ng t\u1eeb b\u1ea3n n8n m\u1edbi nh\u1ea5t.<\/li>\n\n\n\n<li><strong>USER root<\/strong><strong>:<\/strong> Chuy\u1ec3n sang quy\u1ec1n qu\u1ea3n tr\u1ecb cao nh\u1ea5t \u0111\u1ec3 \u0111\u01b0\u1ee3c ph\u00e9p c\u00e0i \u0111\u1eb7t ph\u1ea7n m\u1ec1m.<\/li>\n\n\n\n<li><strong>RUN apk add<\/strong><strong>: <\/strong>L\u1ec7nh c\u00e0i \u0111\u1eb7t FFmpeg tr\u00ean Alpine Linux.<\/li>\n\n\n\n<li><strong>USER node<\/strong><strong>:<\/strong> Chuy\u1ec3n l\u1ea1i v\u1ec1 ng\u01b0\u1eddi d\u00f9ng m\u1eb7c \u0111\u1ecbnh \u0111\u1ec3 \u0111\u1ea3m b\u1ea3o an to\u00e0n b\u1ea3o m\u1eadt.<\/li>\n<\/ul>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img decoding=\"async\" width=\"1006\" height=\"571\" src=\"https:\/\/tino.vn\/blog\/wp-content\/uploads\/2026\/01\/word-image-123030-5.png\" alt=\"T\u1ea1o file Dockerfile\" class=\"wp-image-123035\" title=\"\" srcset=\"https:\/\/tino.vn\/blog\/wp-content\/uploads\/2026\/01\/word-image-123030-5.png 1006w, https:\/\/tino.vn\/blog\/wp-content\/uploads\/2026\/01\/word-image-123030-5-300x170.png 300w, https:\/\/tino.vn\/blog\/wp-content\/uploads\/2026\/01\/word-image-123030-5-768x436.png 768w\" sizes=\"(max-width: 1006px) 100vw, 1006px\" \/><figcaption class=\"wp-element-caption\"><strong>T\u1ea1o file Dockerfile<\/strong><\/figcaption><\/figure>\n<\/div>\n\n\n<p><strong>C\u00e1ch l\u01b0u v\u00e0 tho\u00e1t kh\u1ecfi nano:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Nh\u1ea5n t\u1ed5 h\u1ee3p ph\u00edm<strong> <\/strong><strong>Ctrl + O<\/strong> (ch\u1eef O, kh\u00f4ng ph\u1ea3i s\u1ed1 0) \u0111\u1ec3 l\u01b0u file.<\/li>\n\n\n\n<li>Nh\u1ea5n <strong>Enter<\/strong> \u0111\u1ec3 x\u00e1c nh\u1eadn t\u00ean file.<\/li>\n\n\n\n<li>Nh\u1ea5n <strong>Ctrl + X<\/strong> \u0111\u1ec3 tho\u00e1t ra ngo\u00e0i.<\/li>\n<\/ul>\n\n\n\n<p><em><strong>Trong tr\u01b0\u1eddng h\u1ee3p container n8n c\u1ee7a b\u1ea1n kh\u00f4ng ph\u1ea3i h\u1ec7 \u0111i\u1ec1u h\u00e0nh Alpine, h\u00e3y nh\u1eadp n\u1ed9i dung cho Dockerfile nh\u01b0 sau:<\/strong><\/em><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>FROM n8nio\/n8n:latest\n\nUSER root\n\nRUN apt-get update \\\n\n&nbsp;&amp;&amp; apt-get install -y ffmpeg \\\n\n&nbsp;&amp;&amp; apt-get clean \\\n\n&nbsp;&amp;&amp; rm -rf \/var\/lib\/apt\/lists\/*\n\nUSER node<\/code><\/pre>\n\n\n\n<h4 id=\"B\u01b0\u1edbc_3:_Ch\u1ec9nh_s\u1eeda_file_docker-compose.yml\"><strong>B\u01b0\u1edbc 3: Ch\u1ec9nh s\u1eeda file docker-compose.yml<\/strong><\/h4>\n\n\n\n<p><\/p>\n\n\n\n<p>B\u00e2y gi\u1edd c\u1ea7n b\u00e1o cho Docker bi\u1ebft h\u00e3y s\u1eed d\u1ee5ng file Dockerfile v\u1eeba t\u1ea1o thay v\u00ec t\u1ea3i tr\u1ef1c ti\u1ebfp t\u1eeb internet. G\u00f5 l\u1ec7nh:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>nano docker-compose.yml<\/code><\/pre>\n\n\n\n<p>T\u00ecm \u0111\u1ebfn ph\u1ea7n khai b\u00e1o c\u1ee7a d\u1ecbch v\u1ee5 n8n. B\u1ea1n s\u1ebd th\u1ea5y d\u00f2ng <strong>image: n8nio\/n8n:latest<\/strong>. H\u00e3y th\u1ef1c hi\u1ec7n thay \u0111\u1ed5i nh\u01b0 sau:<\/p>\n\n\n\n<p><strong>Tr\u01b0\u1edbc khi s\u1eeda:<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>n8n:\n\n&nbsp;&nbsp;image: n8nio\/n8n:latest\n\n&nbsp;&nbsp;restart: always\n\n&nbsp;&nbsp;ports:\n\n&nbsp;&nbsp;&nbsp;&nbsp;- \"5678:5678\"\n\n&nbsp;&nbsp;...<\/code><\/pre>\n\n\n\n<p><strong>Sau khi s\u1eeda (X\u00f3a d\u00f2ng image v\u00e0 th\u00eam d\u00f2ng build):<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>n8n:\n\n&nbsp;&nbsp;build: .\n\n&nbsp;&nbsp;# image: n8nio\/n8n:latest (H\u00e3y th\u00eam d\u1ea5u # \u0111\u1ec3 v\u00f4 hi\u1ec7u h\u00f3a d\u00f2ng n\u00e0y ho\u1eb7c x\u00f3a h\u1eb3n)\n\n&nbsp;&nbsp;restart: always\n\n&nbsp;&nbsp;ports:\n\n&nbsp;&nbsp;&nbsp;&nbsp;- \"5678:5678\"\n\n&nbsp;&nbsp;...<\/code><\/pre>\n\n\n\n<p><em>L\u01b0u \u00fd: Trong file YAML, kho\u1ea3ng c\u00e1ch th\u1ee5t \u0111\u1ea7u d\u00f2ng r\u1ea5t quan tr\u1ecdng. H\u00e3y \u0111\u1ea3m b\u1ea3o ch\u1eef <\/em><strong><em>build: .<\/em><\/strong><em>(c\u00f3 <strong>d\u1ea5u ch\u1ea5m<\/strong> ph\u00eda sau) th\u1eb3ng h\u00e0ng v\u1edbi c\u00e1c d\u00f2ng kh\u00e1c nh\u01b0 <\/em><strong><em>restart:<\/em><\/strong><em>hay <\/em><strong><em>ports:<\/em><\/strong><em>.<\/em><\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img decoding=\"async\" width=\"918\" height=\"612\" src=\"https:\/\/tino.vn\/blog\/wp-content\/uploads\/2026\/01\/word-image-123030-6.png\" alt=\"Ch\u1ec9nh s\u1eeda file docker-compose.yml\" class=\"wp-image-123036\" title=\"\" srcset=\"https:\/\/tino.vn\/blog\/wp-content\/uploads\/2026\/01\/word-image-123030-6.png 918w, https:\/\/tino.vn\/blog\/wp-content\/uploads\/2026\/01\/word-image-123030-6-300x200.png 300w, https:\/\/tino.vn\/blog\/wp-content\/uploads\/2026\/01\/word-image-123030-6-768x512.png 768w\" sizes=\"(max-width: 918px) 100vw, 918px\" \/><figcaption class=\"wp-element-caption\"><strong>Ch\u1ec9nh s\u1eeda file docker-compose.yml<\/strong><\/figcaption><\/figure>\n<\/div>\n\n\n<p>L\u01b0u v\u00e0 tho\u00e1t file n\u00e0y t\u01b0\u01a1ng t\u1ef1 nh\u01b0 <strong>B\u01b0\u1edbc 2<\/strong> (<strong>Ctrl + O<\/strong> -&gt; <strong>Enter<\/strong> -&gt; <strong>Ctrl + X<\/strong>).<\/p>\n\n\n\n<h4 id=\"B\u01b0\u1edbc_4:_X\u00e2y_d\u1ef1ng_v\u00e0_kh\u1edfi_\u0111\u1ed9ng_l\u1ea1i_n8n\"><strong>B\u01b0\u1edbc 4: X\u00e2y d\u1ef1ng v\u00e0 kh\u1edfi \u0111\u1ed9ng l\u1ea1i n8n<\/strong><\/h4>\n\n\n\n<p><\/p>\n\n\n\n<p>Sau khi \u0111\u00e3 c\u00f3 file c\u1ea5u h\u00ecnh m\u1edbi, h\u00e3y ch\u1ea1y l\u1ec7nh sau \u0111\u1ec3 Docker t\u1ef1 \u0111\u1ed9ng c\u00e0i \u0111\u1eb7t FFmpeg v\u00e0 kh\u1edfi \u0111\u1ed9ng l\u1ea1i n8n:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>docker compose up -d --build<\/code><\/pre>\n\n\n\n<p>(<em>N\u1ebfu VPS s\u1eed d\u1ee5ng phi\u00ean b\u1ea3n Docker c\u0169, l\u1ec7nh c\u00f3 th\u1ec3 l\u00e0 <code>docker-compose up -d --build<\/code><\/em>).<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img decoding=\"async\" width=\"961\" height=\"531\" src=\"https:\/\/tino.vn\/blog\/wp-content\/uploads\/2026\/01\/word-image-123030-7.png\" alt=\"X\u00e2y d\u1ef1ng v\u00e0 kh\u1edfi \u0111\u1ed9ng l\u1ea1i n8n\" class=\"wp-image-123037\" title=\"\" srcset=\"https:\/\/tino.vn\/blog\/wp-content\/uploads\/2026\/01\/word-image-123030-7.png 961w, https:\/\/tino.vn\/blog\/wp-content\/uploads\/2026\/01\/word-image-123030-7-300x166.png 300w, https:\/\/tino.vn\/blog\/wp-content\/uploads\/2026\/01\/word-image-123030-7-768x424.png 768w\" sizes=\"(max-width: 961px) 100vw, 961px\" \/><figcaption class=\"wp-element-caption\"><strong>X\u00e2y d\u1ef1ng v\u00e0 kh\u1edfi \u0111\u1ed9ng l\u1ea1i n8n<\/strong><\/figcaption><\/figure>\n<\/div>\n\n\n<p>Qu\u00e1 tr\u00ecnh n\u00e0y c\u00f3 th\u1ec3 m\u1ea5t kho\u1ea3ng 1 ph\u00fat. Khi ho\u00e0n t\u1ea5t, n8n \u0111\u00e3 c\u00f3 s\u1eb5n FFmpeg.<\/p>\n\n\n\n<p><strong><em>L\u01b0u \u00fd: N\u1ebfu c\u00e0i \u0111\u1eb7t kh\u00f4ng th\u00e0nh c\u00f4ng, ch\u00fang ta s\u1ebd s\u1eed d\u1ee5ng m\u1ed9t gi\u1ea3i ph\u00e1p kh\u00e1c \u0111\u1ec3 t\u1ea1o l\u1ea1i Dockerfile. C\u00e1ch n\u00e0y s\u1ebd &#8220;m\u01b0\u1ee3n&#8221; file FFmpeg t\u1eeb m\u1ed9t ngu\u1ed3n kh\u00e1c v\u00e0 b\u1ecf v\u00e0o n8n. Nh\u1eadp l\u1ea1i n\u1ed9i dung trong Dockerfile (b\u01b0\u1edbc 2).<\/em><\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># T\u1ea7ng 1: M\u01b0\u1ee3n file FFmpeg t\u1eeb m\u1ed9t b\u1ea3n Linux c\u00f3 s\u1eb5n\n\nFROM alpine:latest AS fetcher\n\nRUN apk add --no-cache ffmpeg\n\n# T\u1ea7ng 2: B\u1ecf file \u0111\u00f3 v\u00e0o b\u1ea3n n8n c\u1ee7a b\u1ea1n\n\nFROM dockerhub.tino.org\/library\/n8nio\/n8n:latest\n\nUSER root\n\n# Ch\u00e9p file FFmpeg t\u1eeb t\u1ea7ng 1 sang t\u1ea7ng 2\n\nCOPY --from=fetcher \/usr\/bin\/ffmpeg \/usr\/bin\/ffmpeg\n\n# Ch\u00e9p c\u00e1c th\u01b0 vi\u1ec7n h\u1ed7 tr\u1ee3 \u0111i k\u00e8m\n\nCOPY --from=fetcher \/usr\/lib\/ \/usr\/lib\/\n\nUSER node<\/code><\/pre>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img decoding=\"async\" width=\"1024\" height=\"552\" src=\"https:\/\/tino.vn\/blog\/wp-content\/uploads\/2026\/01\/image-3-1024x552.png\" alt=\"X\u00e2y d\u1ef1ng v\u00e0 kh\u1edfi \u0111\u1ed9ng l\u1ea1i n8n\" class=\"wp-image-123048\" title=\"\" srcset=\"https:\/\/tino.vn\/blog\/wp-content\/uploads\/2026\/01\/image-3-1024x552.png 1024w, https:\/\/tino.vn\/blog\/wp-content\/uploads\/2026\/01\/image-3-300x162.png 300w, https:\/\/tino.vn\/blog\/wp-content\/uploads\/2026\/01\/image-3-768x414.png 768w, https:\/\/tino.vn\/blog\/wp-content\/uploads\/2026\/01\/image-3.png 1048w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\"><strong>X\u00e2y d\u1ef1ng v\u00e0 kh\u1edfi \u0111\u1ed9ng l\u1ea1i n8n<\/strong><\/figcaption><\/figure>\n<\/div>\n\n\n<p><span style=\"text-decoration: underline;\">K\u1ebft qu\u1ea3:<\/span><\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img decoding=\"async\" width=\"1024\" height=\"401\" src=\"https:\/\/tino.vn\/blog\/wp-content\/uploads\/2026\/01\/word-image-123030-9-1024x401.png\" alt=\"X\u00e2y d\u1ef1ng v\u00e0 kh\u1edfi \u0111\u1ed9ng l\u1ea1i n8n\" class=\"wp-image-123039\" title=\"\" srcset=\"https:\/\/tino.vn\/blog\/wp-content\/uploads\/2026\/01\/word-image-123030-9-1024x401.png 1024w, https:\/\/tino.vn\/blog\/wp-content\/uploads\/2026\/01\/word-image-123030-9-300x118.png 300w, https:\/\/tino.vn\/blog\/wp-content\/uploads\/2026\/01\/word-image-123030-9-768x301.png 768w, https:\/\/tino.vn\/blog\/wp-content\/uploads\/2026\/01\/word-image-123030-9.png 1500w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\"><strong>X\u00e2y d\u1ef1ng v\u00e0 kh\u1edfi \u0111\u1ed9ng l\u1ea1i n8n<\/strong><\/figcaption><\/figure>\n<\/div>\n\n\n<p>M\u1eb7c d\u00f9 \u0111\u00e3 build xong, b\u1ea1n c\u1ea7n y\u00eau c\u1ea7u Docker kh\u1edfi \u0111\u1ed9ng l\u1ea1i n8n \u0111\u1ec3 \u00e1p d\u1ee5ng b\u1ea3n m\u1edbi v\u1eeba x\u00e2y d\u1ef1ng b\u1eb1ng l\u1ec7nh:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>docker compose up -d<\/code><\/pre>\n\n\n\n<p>Sau khi n8n kh\u1edfi \u0111\u1ed9ng l\u1ea1i, h\u00e3y ch\u1ea1y l\u1ec7nh n\u00e0y \u0111\u1ec3 xem FFmpeg \u0111\u00e3 th\u1ef1c s\u1ef1 &#8220;n\u1eb1m&#8221; trong n8n ch\u01b0a:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>docker exec -it n8n-n8n-1 ffmpeg -version<\/code><\/pre>\n\n\n\n<p>N\u1ebfu m\u00e0n h\u00ecnh hi\u1ec7n ra c\u00e1c th\u00f4ng tin v\u1ec1 ffmpeg version, configuration,&#8230; th\u00ec m\u1ecdi th\u1ee9 \u0111\u00e3 ho\u00e0n t\u1ea5t.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img decoding=\"async\" width=\"1024\" height=\"415\" src=\"https:\/\/tino.vn\/blog\/wp-content\/uploads\/2026\/01\/word-image-123030-10-1024x415.png\" alt=\"X\u00e2y d\u1ef1ng v\u00e0 kh\u1edfi \u0111\u1ed9ng l\u1ea1i n8n\" class=\"wp-image-123040\" title=\"\" srcset=\"https:\/\/tino.vn\/blog\/wp-content\/uploads\/2026\/01\/word-image-123030-10-1024x415.png 1024w, https:\/\/tino.vn\/blog\/wp-content\/uploads\/2026\/01\/word-image-123030-10-300x122.png 300w, https:\/\/tino.vn\/blog\/wp-content\/uploads\/2026\/01\/word-image-123030-10-768x312.png 768w, https:\/\/tino.vn\/blog\/wp-content\/uploads\/2026\/01\/word-image-123030-10.png 1373w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\"><strong>X\u00e2y d\u1ef1ng v\u00e0 kh\u1edfi \u0111\u1ed9ng l\u1ea1i n8n<\/strong><\/figcaption><\/figure>\n<\/div>\n\n\n<p>Nh\u01b0 \u0111\u00e3 th\u1ea5y, FFmpeg version 8.0.1 \u0111\u00e3 \u0111\u01b0\u1ee3c c\u00e0i \u0111\u1eb7t th\u00e0nh c\u00f4ng v\u00e0o b\u00ean trong container n8n-n8n-1.<\/p>\n\n\n\n<h3 id=\"H\u01b0\u1edbng_d\u1eabn_c\u00e1ch_s\u1eed_d\u1ee5ng_FFmpeg_trong_n8n\"><strong>H\u01b0\u1edbng d\u1eabn c\u00e1ch s\u1eed d\u1ee5ng FFmpeg trong n8n<\/strong><\/h3>\n\n\n\n<p>Tr\u01b0\u1edbc \u0111\u00e2y, b\u1ea1n s\u1ebd s\u1eed d\u1ee5ng tr\u1ef1c ti\u1ebfp node <strong>Execute Command<\/strong> c\u00f3 s\u1eb5n \u0111\u1ec3 ch\u1ea1y c\u00e1c l\u1ec7nh FFmpeg. Tuy nhi\u00ean, hi\u1ec7n t\u1ea1i, node n\u00e0y \u0111\u00e3 b\u1ecb n8n v\u00f4 hi\u1ec7u h\u00f3a v\u00ec l\u00fd do r\u1ee7i ro b\u1ea3o m\u1eadt. Gi\u1ea3i ph\u00e1p thay th\u1ebf m\u1ea1nh m\u1ebd nh\u1ea5t l\u00e0 s\u1eed d\u1ee5ng node SSH. Thay v\u00ec \u0111\u1ec3 n8n t\u1ef1 ch\u1ea1y l\u1ec7nh b\u00ean trong n\u00f3 (vi\u1ec7c n\u00e0y b\u1ecb c\u1ea5m), ch\u00fang ta s\u1ebd d\u00f9ng n8n \u0111\u1ec3 &#8220;\u0111\u0103ng nh\u1eadp&#8221; v\u00e0o VPS v\u00e0 ra l\u1ec7nh cho Docker ch\u1ea1y FFmpeg.<\/p>\n\n\n\n<p>C\u1ee5 th\u1ec3, b\u1ea1n s\u1ebd d\u00f9ng n8n \u0111\u1ec3 SSH v\u00e0o ch\u00ednh con VPS \u0111ang ch\u1ea1y n8n \u0111\u00f3 (ho\u1eb7c VPS kh\u00e1c), sau \u0111\u00f3 d\u00f9ng l\u1ec7nh <strong>docker exec<\/strong> \u0111\u1ec3 g\u1ecdi FFmpeg \u0111ang n\u1eb1m trong container c\u1ee7a b\u1ea1n ra l\u00e0m vi\u1ec7c.<\/p>\n\n\n\n<h4 id=\"C\u1ea5u_h\u00ecnh_node_SSH\"><strong>C\u1ea5u h\u00ecnh node SSH<\/strong><\/h4>\n\n\n\n<p><\/p>\n\n\n\n<p><strong>B\u01b0\u1edbc 1:<\/strong> B\u1ea1n c\u1ea7n c\u00f3 c\u00e1c th\u00f4ng tin m\u00e0 b\u1ea1n v\u1eabn d\u00f9ng \u0111\u1ec3 \u0111\u0103ng nh\u1eadp PuTTY\/Terminal:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Host:<\/strong> \u0110\u1ecba ch\u1ec9 IP c\u1ee7a VPS.<\/li>\n\n\n\n<li><strong>Username:<\/strong> Th\u01b0\u1eddng l\u00e0 root.<\/li>\n\n\n\n<li><strong>Password:<\/strong> M\u1eadt kh\u1ea9u \u0111\u0103ng nh\u1eadp VPS.<\/li>\n<\/ul>\n\n\n\n<p><strong>B\u01b0\u1edbc 2:<\/strong> Trong n8n, t\u00ecm v\u00e0 th\u00eam node <strong>SSH<\/strong> -&gt; ch\u1ecdn<strong> Execute a command<\/strong>.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img decoding=\"async\" width=\"1241\" height=\"659\" src=\"https:\/\/tino.vn\/blog\/wp-content\/uploads\/2026\/01\/word-image-123030-11.png\" alt=\"C\u1ea5u h\u00ecnh node SSH\" class=\"wp-image-123041\" title=\"\" srcset=\"https:\/\/tino.vn\/blog\/wp-content\/uploads\/2026\/01\/word-image-123030-11.png 1241w, https:\/\/tino.vn\/blog\/wp-content\/uploads\/2026\/01\/word-image-123030-11-300x159.png 300w, https:\/\/tino.vn\/blog\/wp-content\/uploads\/2026\/01\/word-image-123030-11-1024x544.png 1024w, https:\/\/tino.vn\/blog\/wp-content\/uploads\/2026\/01\/word-image-123030-11-768x408.png 768w\" sizes=\"(max-width: 1241px) 100vw, 1241px\" \/><figcaption class=\"wp-element-caption\"><strong>C\u1ea5u h\u00ecnh node SSH<\/strong><\/figcaption><\/figure>\n<\/div>\n\n\n<p>Trong ph\u1ea7n <strong>Credentials<\/strong>, t\u1ea1o m\u1edbi m\u1ed9t credential: Nh\u1eadp IP, User v\u00e0 Password c\u1ee7a VPS.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img decoding=\"async\" width=\"1024\" height=\"553\" src=\"https:\/\/tino.vn\/blog\/wp-content\/uploads\/2026\/01\/word-image-123030-12-1024x553.png\" alt=\"C\u1ea5u h\u00ecnh node SSH\" class=\"wp-image-123042\" title=\"\" srcset=\"https:\/\/tino.vn\/blog\/wp-content\/uploads\/2026\/01\/word-image-123030-12-1024x553.png 1024w, https:\/\/tino.vn\/blog\/wp-content\/uploads\/2026\/01\/word-image-123030-12-300x162.png 300w, https:\/\/tino.vn\/blog\/wp-content\/uploads\/2026\/01\/word-image-123030-12-768x415.png 768w, https:\/\/tino.vn\/blog\/wp-content\/uploads\/2026\/01\/word-image-123030-12.png 1328w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\"><strong>C\u1ea5u h\u00ecnh node SSH<\/strong><\/figcaption><\/figure>\n<\/div>\n\n\n<p>Sau khi k\u1ebft n\u1ed1i th\u00e0nh c\u00f4ng, b\u1ea1n s\u1ebd nh\u1eadp l\u1ec7nh v\u00e0o \u00f4 <strong>Command<\/strong>.<\/p>\n\n\n\n<p><strong>B\u01b0\u1edbc 3: <\/strong>Ki\u1ec3m tra node SSH xem \u0111\u00e3 k\u1ebft n\u1ed1i th\u00e0nh c\u00f4ng hay ch\u01b0a.<\/p>\n\n\n\n<p>V\u00ec b\u1ea1n \u0111ang \u0111\u1ee9ng \u1edf VPS (m\u00e1y ch\u1ee7) nh\u00ecn v\u00e0o, nh\u01b0ng FFmpeg l\u1ea1i n\u1eb1m trong Container, n\u00ean c\u00e2u l\u1ec7nh kh\u00f4ng ph\u1ea3i l\u00e0 ffmpeg &#8230; m\u00e0 ph\u1ea3i l\u00e0:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>docker exec n8n-n8n-1 ffmpeg &#91;c\u00e1c tham s\u1ed1 kh\u00e1c]<\/code><\/pre>\n\n\n\n<p><strong><em>Trong \u0111\u00f3:<\/em><\/strong><em> Thay n<\/em><strong><em>8n-n8n-1<\/em><\/strong><em>th\u00e0nh t\u00ean container c\u1ee7a b\u1ea1n.<\/em><\/p>\n\n\n\n<p>Trong \u00f4 <strong>Command<\/strong> c\u1ee7a node SSH, b\u1ea1n nh\u1eadp:&nbsp;<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>docker exec n8n-n8n-1 ffmpeg -version<\/code><\/pre>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img decoding=\"async\" width=\"773\" height=\"608\" src=\"https:\/\/tino.vn\/blog\/wp-content\/uploads\/2026\/01\/image-5.png\" alt=\"C\u1ea5u h\u00ecnh node SSH\" class=\"wp-image-123050\" title=\"\" srcset=\"https:\/\/tino.vn\/blog\/wp-content\/uploads\/2026\/01\/image-5.png 773w, https:\/\/tino.vn\/blog\/wp-content\/uploads\/2026\/01\/image-5-300x236.png 300w, https:\/\/tino.vn\/blog\/wp-content\/uploads\/2026\/01\/image-5-768x604.png 768w\" sizes=\"(max-width: 773px) 100vw, 773px\" \/><figcaption class=\"wp-element-caption\"><strong>C\u1ea5u h\u00ecnh node SSH<\/strong><\/figcaption><\/figure>\n<\/div>\n\n\n<p>N\u1ebfu Output tr\u1ea3 v\u1ec1 th\u00f4ng tin phi\u00ean b\u1ea3n, ngh\u0129a l\u00e0 c\u1ea7u n\u1ed1i \u0111\u00e3 th\u00f4ng.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img decoding=\"async\" width=\"1024\" height=\"567\" src=\"https:\/\/tino.vn\/blog\/wp-content\/uploads\/2026\/01\/word-image-123030-14-1024x567.png\" alt=\"C\u1ea5u h\u00ecnh node SSH\" class=\"wp-image-123044\" title=\"\" srcset=\"https:\/\/tino.vn\/blog\/wp-content\/uploads\/2026\/01\/word-image-123030-14-1024x567.png 1024w, https:\/\/tino.vn\/blog\/wp-content\/uploads\/2026\/01\/word-image-123030-14-300x166.png 300w, https:\/\/tino.vn\/blog\/wp-content\/uploads\/2026\/01\/word-image-123030-14-768x426.png 768w, https:\/\/tino.vn\/blog\/wp-content\/uploads\/2026\/01\/word-image-123030-14.png 1200w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\"><strong>C\u1ea5u h\u00ecnh node SSH<\/strong><\/figcaption><\/figure>\n<\/div>\n\n\n<h4 id=\"V\u00ed_d\u1ee5:_Chuy\u1ec3n_\u0111\u1ed5i_video_sang_audio\">V\u00ed d\u1ee5: Chuy\u1ec3n \u0111\u1ed5i video sang audio<\/h4>\n\n\n\n<p><\/p>\n\n\n\n<p>Gi\u1ea3 s\u1eed b\u1ea1n \u0111\u00e3 t\u1ea3i file video v\u1ec1 th\u01b0 m\u1ee5c \/home\/node\/.n8n\/video.mp4.<\/p>\n\n\n\n<p><strong>C\u00e2u l\u1ec7nh trong node SSH s\u1ebd l\u00e0:<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>docker exec n8n-n8n-1 ffmpeg -i \/home\/node\/.n8n\/video.mp4 \/home\/node\/.n8n\/audio.mp3<\/code><\/pre>\n\n\n\n<p><strong>Gi\u1ea3i th\u00edch c\u01a1 ch\u1ebf:<\/strong><\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Node SSH \u0111\u0103ng nh\u1eadp v\u00e0o VPS.<\/li>\n\n\n\n<li>N\u00f3 g\u1eedi l\u1ec7nh <strong>docker exec&#8230;<\/strong> cho VPS.<\/li>\n\n\n\n<li>VPS ch\u1ecdc v\u00e0o container <strong>n8n-n8n-1<\/strong>, t\u00ecm file <strong>video.mp4<\/strong> (\u0111ang n\u1eb1m trong container) v\u00e0 x\u1eed l\u00fd.<\/li>\n\n\n\n<li>K\u1ebft qu\u1ea3 <strong>audio.mp3<\/strong> \u0111\u01b0\u1ee3c l\u01b0u l\u1ea1i ngay trong container \u0111\u1ec3 b\u1ea1n d\u00f9ng ti\u1ebfp \u1edf c\u00e1c node sau.<\/li>\n<\/ol>\n\n\n\n<h3 id=\"K\u1ebft_lu\u1eadn\"><strong>K\u1ebft lu\u1eadn<\/strong><\/h3>\n\n\n\n<p>Vi\u1ec7c t\u00edch h\u1ee3p FFmpeg v\u00e0o n8n ch\u1ea1y tr\u00ean n\u1ec1n t\u1ea3ng Docker tho\u1ea1t nh\u00ecn c\u00f3 v\u1ebb ph\u1ee9c t\u1ea1p, \u0111\u1eb7c bi\u1ec7t khi ph\u1ea3i x\u1eed l\u00fd c\u00e1c v\u1ea5n \u0111\u1ec1 v\u1ec1 t\u01b0\u01a1ng th\u00edch h\u1ec7 \u0111i\u1ec1u h\u00e0nh hay c\u1ea5u tr\u00fac t\u1eadp tin YAML. Tuy nhi\u00ean, khi \u0111\u00e3 v\u01b0\u1ee3t qua \u0111\u01b0\u1ee3c r\u00e0o c\u1ea3n c\u00e0i \u0111\u1eb7t, s\u1ef1 k\u1ebft h\u1ee3p gi\u1eefa kh\u1ea3 n\u0103ng \u0111i\u1ec1u ph\u1ed1i quy tr\u00ecnh c\u1ee7a n8n v\u00e0 s\u1ee9c m\u1ea1nh x\u1eed l\u00fd \u0111a ph\u01b0\u01a1ng ti\u1ec7n c\u1ee7a FFmpeg s\u1ebd t\u1ea1o n\u00ean m\u1ed9t h\u1ec7 th\u1ed1ng t\u1ef1 \u0111\u1ed9ng h\u00f3a v\u00f4 c\u00f9ng m\u1ea1nh m\u1ebd.<\/p>\n\n\n\n<p>Hy v\u1ecdng v\u1edbi h\u01b0\u1edbng d\u1eabn chi ti\u1ebft n\u00e0y, b\u1ea1n \u0111\u1ecdc c\u00f3 th\u1ec3 t\u1ef1 tin tri\u1ec3n khai v\u00e0 l\u00e0m ch\u1ee7 c\u00f4ng c\u1ee5, bi\u1ebfn nh\u1eefng d\u00f2ng l\u1ec7nh kh\u00f4 khan th\u00e0nh c\u00e1c t\u00ednh n\u0103ng h\u1eefu \u00edch ph\u1ee5c v\u1ee5 tr\u1ef1c ti\u1ebfp cho c\u00f4ng vi\u1ec7c kinh doanh v\u00e0 v\u1eadn h\u00e0nh.<\/p>\n\n\n\n<h2 id=\"Nh\u1eefng_c\u00e2u_h\u1ecfi_th\u01b0\u1eddng_g\u1eb7p\">Nh\u1eefng c\u00e2u h\u1ecfi th\u01b0\u1eddng g\u1eb7p<\/h2>\n\n\n\t\t<section\t\thelp class=\"sc_fs_faq sc_card    \"\n\t\t\t\t>\n\t\t\t\t<h2 id=\"T\u1ea1i_sao_t\u00f4i_d\u00f9ng_l\u1ec7nh_apk_add_ho\u1eb7c_apt-get_install_\u0111\u1ec1u_b\u00e1o_l\u1ed7i_kh\u00f4ng_t\u00ecm_th\u1ea5y?\u00a0\">T\u1ea1i sao t\u00f4i d\u00f9ng l\u1ec7nh apk add ho\u1eb7c apt-get install \u0111\u1ec1u b\u00e1o l\u1ed7i kh\u00f4ng t\u00ecm th\u1ea5y?\u00a0<\/h2>\t\t\t\t<div>\n\t\t\t\t\t\t<div class=\"sc_fs_faq__content\">\n\t\t\t\t\n\n<p>Nhi\u1ec1u nh\u00e0 cung c\u1ea5p d\u1ecbch v\u1ee5 ho\u1eb7c c\u00e1c b\u1ea3n ph\u00e2n ph\u1ed1i Docker hi\u1ec7n \u0111\u1ea1i s\u1eed d\u1ee5ng c\u00e1c b\u1ea3n d\u1ef1ng (Image) \u0111\u01b0\u1ee3c t\u1ed1i \u01b0u h\u00f3a b\u1ea3o m\u1eadt, trong \u0111\u00f3 \u0111\u00e3 lo\u1ea1i b\u1ecf ho\u00e0n to\u00e0n tr\u00ecnh qu\u1ea3n l\u00fd g\u00f3i \u0111\u1ec3 gi\u1ea3m dung l\u01b0\u1ee3ng v\u00e0 t\u0103ng an to\u00e0n. Trong tr\u01b0\u1eddng h\u1ee3p n\u00e0y, gi\u1ea3i ph\u00e1p t\u1ed1i \u01b0u l\u00e0 s\u1eed d\u1ee5ng k\u1ef9 thu\u1eadt &#8220;Multi-stage build&#8221; (x\u00e2y d\u1ef1ng \u0111a t\u1ea7ng) trong Dockerfile (\u0111\u00e3 h\u01b0\u1edbng d\u1eabn trong b\u00e0i vi\u1ebft) \u0111\u1ec3 sao ch\u00e9p t\u1eadp tin th\u1ef1c thi FFmpeg t\u1eeb m\u1ed9t ngu\u1ed3n kh\u00e1c v\u00e0o n8n.<\/p>\n\n\t\t\t<\/div>\n\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section\t\thelp class=\"sc_fs_faq sc_card    \"\n\t\t\t\t>\n\t\t\t\t<h2 id=\"T\u1ea1i_sao_t\u00f4i_nh\u1eadn_th\u00f4ng_b\u00e1o_l\u1ed7i_&quot;No_such_container&quot;_khi_ki\u1ec3m_tra_h\u1ec7_\u0111i\u1ec1u_h\u00e0nh?\u00a0\">T\u1ea1i sao t\u00f4i nh\u1eadn th\u00f4ng b\u00e1o l\u1ed7i &quot;No such container&quot; khi ki\u1ec3m tra h\u1ec7 \u0111i\u1ec1u h\u00e0nh?\u00a0<\/h2>\t\t\t\t<div>\n\t\t\t\t\t\t<div class=\"sc_fs_faq__content\">\n\t\t\t\t\n\n<p>Docker Compose th\u01b0\u1eddng t\u1ef1 \u0111\u1ed9ng th\u00eam ti\u1ec1n t\u1ed1 (t\u00ean th\u01b0 m\u1ee5c) v\u00e0 h\u1eadu t\u1ed1 (s\u1ed1 th\u1ee9 t\u1ef1) v\u00e0o t\u00ean Container. V\u00ed d\u1ee5, n\u1ebfu khai b\u00e1o l\u00e0 <strong>n8n<\/strong>, t\u00ean th\u1ef1c t\u1ebf c\u00f3 th\u1ec3 l\u00e0 <strong>n8n-n8n-1<\/strong>. C\u1ea7n s\u1eed d\u1ee5ng l\u1ec7nh docker ps \u0111\u1ec3 x\u00e1c \u0111\u1ecbnh ch\u00ednh x\u00e1c t\u00ean Container \u0111ang ch\u1ea1y tr\u01b0\u1edbc khi th\u1ef1c hi\u1ec7n c\u00e1c thao t\u00e1c d\u00f2ng l\u1ec7nh.<\/p>\n\n\t\t\t<\/div>\n\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section\t\thelp class=\"sc_fs_faq sc_card    \"\n\t\t\t\t>\n\t\t\t\t<h2 id=\"M\u1ed7i_l\u1ea7n_s\u1eeda_Dockerfile_c\u00f3_c\u1ea7n_ch\u1ea1y_l\u1ea1i_l\u1ec7nh_build_kh\u00f4ng?\u00a0\">M\u1ed7i l\u1ea7n s\u1eeda Dockerfile c\u00f3 c\u1ea7n ch\u1ea1y l\u1ea1i l\u1ec7nh build kh\u00f4ng?\u00a0<\/h2>\t\t\t\t<div>\n\t\t\t\t\t\t<div class=\"sc_fs_faq__content\">\n\t\t\t\t\n\n<p>C\u00f3. M\u1ecdi thay \u0111\u1ed5i trong Dockerfile ch\u1ec9 c\u00f3 hi\u1ec7u l\u1ef1c khi h\u1ec7 th\u1ed1ng x\u00e2y d\u1ef1ng l\u1ea1i b\u1ea3n Image. C\u1ea7n s\u1eed d\u1ee5ng l\u1ec7nh docker compose up -d &#8211;build \u0111\u1ec3 Docker c\u1eadp nh\u1eadt c\u00e1c thay \u0111\u1ed5i m\u1edbi nh\u1ea5t v\u00e0o Container.<\/p>\n\n\t\t\t<\/div>\n\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section\t\thelp class=\"sc_fs_faq sc_card    \"\n\t\t\t\t>\n\t\t\t\t<h2 id=\"C\u1ea5u_h\u00ecnh_VPS_t\u1ed1i_thi\u1ec3u_\u0111\u1ec3_ch\u1ea1y_n8n_k\u00e8m_FFmpeg_l\u00e0_bao_nhi\u00eau?\u00a0\">C\u1ea5u h\u00ecnh VPS t\u1ed1i thi\u1ec3u \u0111\u1ec3 ch\u1ea1y n8n k\u00e8m FFmpeg l\u00e0 bao nhi\u00eau?\u00a0<\/h2>\t\t\t\t<div>\n\t\t\t\t\t\t<div class=\"sc_fs_faq__content\">\n\t\t\t\t\n\n<p>FFmpeg ti\u00eau t\u1ed1n kh\u00e1 nhi\u1ec1u t\u00e0i nguy\u00ean CPU v\u00e0 RAM khi x\u1eed l\u00fd n\u00e9n video. \u0110\u1ec3 quy tr\u00ecnh ho\u1ea1t \u0111\u1ed9ng \u1ed5n \u0111\u1ecbnh, VPS n\u00ean c\u00f3 t\u1ed1i thi\u1ec3u 2 CPU Core v\u00e0 4GB RAM. N\u1ebfu c\u1ea5u h\u00ecnh th\u1ea5p h\u01a1n, qu\u00e1 tr\u00ecnh x\u1eed l\u00fd c\u00f3 th\u1ec3 khi\u1ebfn n8n b\u1ecb treo ho\u1eb7c kh\u1edfi \u0111\u1ed9ng l\u1ea1i \u0111\u1ed9t ng\u1ed9t.<\/p>\n\n\t\t\t<\/div>\n\t\t<\/div>\n\t\t<\/section>\n\t\t\n<script type=\"application\/ld+json\">\n\t{\n\t\t\"@context\": \"https:\/\/schema.org\",\n\t\t\"@type\": \"FAQPage\",\n\t\t\"mainEntity\": [\n\t\t\t\t\t{\n\t\t\t\t\"@type\": \"Question\",\n\t\t\t\t\"name\": \"T\u1ea1i sao t\u00f4i d\u00f9ng l\u1ec7nh apk add ho\u1eb7c apt-get install \u0111\u1ec1u b\u00e1o l\u1ed7i kh\u00f4ng t\u00ecm th\u1ea5y?\u00a0\",\n\t\t\t\t\"acceptedAnswer\": {\n\t\t\t\t\t\"@type\": \"Answer\",\n\t\t\t\t\t\"text\": \"<p>Nhi\u1ec1u nh\u00e0 cung c\u1ea5p d\u1ecbch v\u1ee5 ho\u1eb7c c\u00e1c b\u1ea3n ph\u00e2n ph\u1ed1i Docker hi\u1ec7n \u0111\u1ea1i s\u1eed d\u1ee5ng c\u00e1c b\u1ea3n d\u1ef1ng (Image) \u0111\u01b0\u1ee3c t\u1ed1i \u01b0u h\u00f3a b\u1ea3o m\u1eadt, trong \u0111\u00f3 \u0111\u00e3 lo\u1ea1i b\u1ecf ho\u00e0n to\u00e0n tr\u00ecnh qu\u1ea3n l\u00fd g\u00f3i \u0111\u1ec3 gi\u1ea3m dung l\u01b0\u1ee3ng v\u00e0 t\u0103ng an to\u00e0n. Trong tr\u01b0\u1eddng h\u1ee3p n\u00e0y, gi\u1ea3i ph\u00e1p t\u1ed1i \u01b0u l\u00e0 s\u1eed d\u1ee5ng k\u1ef9 thu\u1eadt \\\"Multi-stage build\\\" (x\u00e2y d\u1ef1ng \u0111a t\u1ea7ng) trong Dockerfile (\u0111\u00e3 h\u01b0\u1edbng d\u1eabn trong b\u00e0i vi\u1ebft) \u0111\u1ec3 sao ch\u00e9p t\u1eadp tin th\u1ef1c thi FFmpeg t\u1eeb m\u1ed9t ngu\u1ed3n kh\u00e1c v\u00e0o n8n.<\/p>\"\n\t\t\t\t\t\t\t\t\t}\n\t\t\t}\n\t\t\t,\t\t\t\t{\n\t\t\t\t\"@type\": \"Question\",\n\t\t\t\t\"name\": \"T\u1ea1i sao t\u00f4i nh\u1eadn th\u00f4ng b\u00e1o l\u1ed7i \\\"No such container\\\" khi ki\u1ec3m tra h\u1ec7 \u0111i\u1ec1u h\u00e0nh?\u00a0\",\n\t\t\t\t\"acceptedAnswer\": {\n\t\t\t\t\t\"@type\": \"Answer\",\n\t\t\t\t\t\"text\": \"<p>Docker Compose th\u01b0\u1eddng t\u1ef1 \u0111\u1ed9ng th\u00eam ti\u1ec1n t\u1ed1 (t\u00ean th\u01b0 m\u1ee5c) v\u00e0 h\u1eadu t\u1ed1 (s\u1ed1 th\u1ee9 t\u1ef1) v\u00e0o t\u00ean Container. V\u00ed d\u1ee5, n\u1ebfu khai b\u00e1o l\u00e0 <strong>n8n<\/strong>, t\u00ean th\u1ef1c t\u1ebf c\u00f3 th\u1ec3 l\u00e0 <strong>n8n-n8n-1<\/strong>. C\u1ea7n s\u1eed d\u1ee5ng l\u1ec7nh docker ps \u0111\u1ec3 x\u00e1c \u0111\u1ecbnh ch\u00ednh x\u00e1c t\u00ean Container \u0111ang ch\u1ea1y tr\u01b0\u1edbc khi th\u1ef1c hi\u1ec7n c\u00e1c thao t\u00e1c d\u00f2ng l\u1ec7nh.<\/p>\"\n\t\t\t\t\t\t\t\t\t}\n\t\t\t}\n\t\t\t,\t\t\t\t{\n\t\t\t\t\"@type\": \"Question\",\n\t\t\t\t\"name\": \"M\u1ed7i l\u1ea7n s\u1eeda Dockerfile c\u00f3 c\u1ea7n ch\u1ea1y l\u1ea1i l\u1ec7nh build kh\u00f4ng?\u00a0\",\n\t\t\t\t\"acceptedAnswer\": {\n\t\t\t\t\t\"@type\": \"Answer\",\n\t\t\t\t\t\"text\": \"<p>C\u00f3. M\u1ecdi thay \u0111\u1ed5i trong Dockerfile ch\u1ec9 c\u00f3 hi\u1ec7u l\u1ef1c khi h\u1ec7 th\u1ed1ng x\u00e2y d\u1ef1ng l\u1ea1i b\u1ea3n Image. C\u1ea7n s\u1eed d\u1ee5ng l\u1ec7nh docker compose up -d --build \u0111\u1ec3 Docker c\u1eadp nh\u1eadt c\u00e1c thay \u0111\u1ed5i m\u1edbi nh\u1ea5t v\u00e0o Container.<\/p>\"\n\t\t\t\t\t\t\t\t\t}\n\t\t\t}\n\t\t\t,\t\t\t\t{\n\t\t\t\t\"@type\": \"Question\",\n\t\t\t\t\"name\": \"C\u1ea5u h\u00ecnh VPS t\u1ed1i thi\u1ec3u \u0111\u1ec3 ch\u1ea1y n8n k\u00e8m FFmpeg l\u00e0 bao nhi\u00eau?\u00a0\",\n\t\t\t\t\"acceptedAnswer\": {\n\t\t\t\t\t\"@type\": \"Answer\",\n\t\t\t\t\t\"text\": \"<p>FFmpeg ti\u00eau t\u1ed1n kh\u00e1 nhi\u1ec1u t\u00e0i nguy\u00ean CPU v\u00e0 RAM khi x\u1eed l\u00fd n\u00e9n video. \u0110\u1ec3 quy tr\u00ecnh ho\u1ea1t \u0111\u1ed9ng \u1ed5n \u0111\u1ecbnh, VPS n\u00ean c\u00f3 t\u1ed1i thi\u1ec3u 2 CPU Core v\u00e0 4GB RAM. N\u1ebfu c\u1ea5u h\u00ecnh th\u1ea5p h\u01a1n, qu\u00e1 tr\u00ecnh x\u1eed l\u00fd c\u00f3 th\u1ec3 khi\u1ebfn n8n b\u1ecb treo ho\u1eb7c kh\u1edfi \u0111\u1ed9ng l\u1ea1i \u0111\u1ed9t ng\u1ed9t.<\/p>\"\n\t\t\t\t\t\t\t\t\t}\n\t\t\t}\n\t\t\t\t\t\t]\n\t}\n<\/script>\n","protected":false},"excerpt":{"rendered":"<p>Trong b\u1ed1i c\u1ea3nh n\u1ed9i dung \u0111a ph\u01b0\u01a1ng ti\u1ec7n ng\u00e0y c\u00e0ng chi\u1ebfm \u01b0u th\u1ebf, nhu c\u1ea7u x\u1eed l\u00fd video v\u00e0 \u00e2m thanh t\u1ef1 \u0111\u1ed9ng tr\u1edf n\u00ean c\u1ea5p thi\u1ebft h\u01a1n bao gi\u1edd h\u1ebft. FFmpeg n\u1ed5i l\u00ean nh\u01b0 m\u1ed9t gi\u1ea3i ph\u00e1p h\u00e0ng \u0111\u1ea7u cho c\u00e1c t\u00e1c v\u1ee5 n\u00e0y nh\u1edd t\u00ednh m\u00e3 ngu\u1ed3n m\u1edf, kh\u1ea3 n\u0103ng t\u01b0\u01a1ng th\u00edch r\u1ed9ng [&hellip;]<\/p>\n","protected":false},"author":23,"featured_media":123067,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[7397],"tags":[7530],"class_list":["post-123030","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-n8n","tag-ffmpeg-n8n"],"_links":{"self":[{"href":"https:\/\/tino.vn\/blog\/wp-json\/wp\/v2\/posts\/123030","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/tino.vn\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/tino.vn\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/tino.vn\/blog\/wp-json\/wp\/v2\/users\/23"}],"replies":[{"embeddable":true,"href":"https:\/\/tino.vn\/blog\/wp-json\/wp\/v2\/comments?post=123030"}],"version-history":[{"count":16,"href":"https:\/\/tino.vn\/blog\/wp-json\/wp\/v2\/posts\/123030\/revisions"}],"predecessor-version":[{"id":123079,"href":"https:\/\/tino.vn\/blog\/wp-json\/wp\/v2\/posts\/123030\/revisions\/123079"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/tino.vn\/blog\/wp-json\/wp\/v2\/media\/123067"}],"wp:attachment":[{"href":"https:\/\/tino.vn\/blog\/wp-json\/wp\/v2\/media?parent=123030"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/tino.vn\/blog\/wp-json\/wp\/v2\/categories?post=123030"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/tino.vn\/blog\/wp-json\/wp\/v2\/tags?post=123030"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}