Chúng ta có những đoạn video trên Tiktok, Facebook hay Youtube. Chúng ta muốn chia sẻ chúng cho bạn bè qua Facebook Messenger, Skype,…. Nhưng thay vì muốn gửi đường dẫn video tới bạn bè mình. Chúng ta muốn gửi trực tiếp cho họ. Thay vì gửi video, chúng ta có thể chuyển chúng thành ảnh GIF để nó play được trực tiếp thay vì bấm nút phát video. Ở bài viết này, vinasupport.com sẽ hướng dẫn các bạn convert các đoạn video nhỏ sang ảnh động GIF. Video nhỏ thôi nhé, chứ dài cả tiếng thì :(((
Để convert video thành ảnh động GIF trên Linux, chúng ta cần cài đặt công cụ xử lý video là ffmpeg
Cài đặt package ffmpeg
Lệnh cài đặt trên Ubuntu
sudo apt install ffmpeg
Hướng dẫn convert video thành ảnh GIF
Sau khi cài đặt xong package, chúng ta thực hiện convert video
VD: Có video vinasupport.com.mp4 với định dạng MP4
Giờ mình tiến hành convert sang ảnh động GIF bằng command ffmpeg
Output của command:
[[email protected] ~]:~/tiktok$ ffmpeg -i vinasupport.com.mp4 vinasupport.gif ffmpeg version 4.2.4-1ubuntu0.1 Copyright (c) 2000-2020 the FFmpeg developers built with gcc 9 (Ubuntu 9.3.0-10ubuntu2) configuration: --prefix=/usr --extra-version=1ubuntu0.1 --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --arch=amd64 --enable-gpl --disable-stripping --enable-avresample --disable-filter=resample --enable-avisynth --enable-gnutls --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libcodec2 --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libjack --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librsvg --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzmq --enable-libzvbi --enable-lv2 --enable-omx --enable-openal --enable-opencl --enable-opengl --enable-sdl2 --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-nvenc --enable-chromaprint --enable-frei0r --enable-libx264 --enable-shared WARNING: library configuration mismatch avcodec configuration: --prefix=/usr --extra-version=1ubuntu0.1 --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --arch=amd64 --enable-gpl --disable-stripping --enable-avresample --disable-filter=resample --enable-avisynth --enable-gnutls --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libcodec2 --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libjack --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librsvg --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzmq --enable-libzvbi --enable-lv2 --enable-omx --enable-openal --enable-opencl --enable-opengl --enable-sdl2 --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-nvenc --enable-chromaprint --enable-frei0r --enable-libx264 --enable-shared --enable-version3 --disable-doc --disable-programs --enable-libaribb24 --enable-liblensfun --enable-libopencore_amrnb --enable-libopencore_amrwb --enable-libtesseract --enable-libvo_amrwbenc libavutil 56. 31.100 / 56. 31.100 libavcodec 58. 54.100 / 58. 54.100 libavformat 58. 29.100 / 58. 29.100 libavdevice 58. 8.100 / 58. 8.100 libavfilter 7. 57.100 / 7. 57.100 libavresample 4. 0. 0 / 4. 0. 0 libswscale 5. 5.100 / 5. 5.100 libswresample 3. 5.100 / 3. 5.100 libpostproc 55. 5.100 / 55. 5.100 Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'vinasupport.com.mp4': Metadata: major_brand : isom minor_version : 512 compatible_brands: isomiso2avc1mp41 information : {"com.bytedance.info": "{}"} encoder : Lavf58.45.100 Duration: 00:00:12.31, start: 0.000000, bitrate: 1773 kb/s Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p(tv, bt709), 576x720 [SAR 1:1 DAR 4:5], 1774 kb/s, 25 fps, 25 tbr, 12800 tbn, 50 tbc (default) Metadata: handler_name : VideoHandler Stream #0:1(und): Audio: aac (HE-AACv2) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 32 kb/s (default) Metadata: handler_name : SoundHandler Stream mapping: Stream #0:0 -> #0:0 (h264 (native) -> gif (native)) Press [q] to stop, [?] for help [swscaler @ 0x5620493ecf00] No accelerated colorspace conversion found from yuv420p to bgr8. Output #0, gif, to 'vinasupport.gif': Metadata: major_brand : isom minor_version : 512 compatible_brands: isomiso2avc1mp41 information : {"com.bytedance.info": "{}"} encoder : Lavf58.29.100 Stream #0:0(und): Video: gif, bgr8, 576x720 [SAR 1:1 DAR 4:5], q=2-31, 200 kb/s, 25 fps, 100 tbn, 25 tbc (default) Metadata: handler_name : VideoHandler encoder : Lavc58.54.100 gif frame= 77 fps=0.0 q=-0.0 size= 4864kB time=00:00:03.05 bitrate=13064.2kbits/frame= 152 fps=151 q=-0.0 size= 9984kB time=00:00:06.05 bitrate=13518.8kbits/frame= 212 fps=140 q=-0.0 size= 17664kB time=00:00:08.45 bitrate=17124.7kbits/frame= 267 fps=132 q=-0.0 size= 25856kB time=00:00:10.65 bitrate=19888.5kbits/frame= 301 fps=129 q=-0.0 Lsize= 31123kB time=00:00:12.01 bitrate=21228.8kbits/s speed=5.15x video:31123kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.000063%
Cuối cùng ta được ảnh GIF sau khi đã convert thành công
Nguồn: vinasupport.com