Я пытаюсь нарисовать текст на видео с помощью ffmpeg, и мне нужен выходной файл с тем же качеством и размером, что и для ввода.
Используя приведенную ниже команду,
./ffmpeg -i live0.ts -vf drawtext="fontfile=/usr/share/fonts/truetype/freefont/FreeMonoBold.ttf: text='Some Text': fontcolor=white: fontsize=24: box=1: boxcolor=black: x=(w-text_w)/2: y=(h-text_h-line_h)/2" -codec:a copy output.ts
Я вижу качество и размер файла разные. Используя файл .ts, я получаю выходной файл большего размера (> 3 раза), где качество кажется таким же. Когда я использую файл .mp4, качество уменьшается, а также размер файла.
Что мне нужно, так это поместить текст в видеофайл без изменения его качества и размера.
Редактировать: консольный вывод команды в случае файла .ts.
ffmpeg version 2.1.git Copyright (c) 2000-2014 the FFmpeg developers
built on Mar 8 2016 22:06:51 with gcc 4.6 (Ubuntu/Linaro 4.6.3-1ubuntu5)
configuration: --enable-libfreetype --enable-filter=drawtext --prefix=../build_Mar-8-2016
libavutil 52. 66.100 / 52. 66.100
libavcodec 55. 52.102 / 55. 52.102
libavformat 55. 33.100 / 55. 33.100
libavdevice 55. 10.100 / 55. 10.100
libavfilter 4. 1.103 / 4. 1.103
libswscale 2. 5.101 / 2. 5.101
libswresample 0. 18.100 / 0. 18.100
Input #0, mpegts, from 'live0.ts':
Duration: 00:00:03.27, start: 0.666667, bitrate: 313 kb/s
Program 1
Metadata:
service_name : Service01
service_provider: FFmpeg
Stream #0:0[0x100]: Video: h264 (High) ([27][0][0][0] / 0x001B), yuv420p, 704x480, 15 tbr, 90k tbn, 180k tbc
Output #0, mpegts, to 'output.ts':
Metadata:
encoder : Lavf55.33.100
Stream #0:0: Video: mpeg2video, yuv420p, 704x480, q=2-31, 200 kb/s, 90k tbn, 15 tbc
Stream mapping:
Stream #0:0 -> #0:0 (h264 -> mpeg2video)
Press [q] to stop, [?] for help
frame= 50 fps=0.0 q=9.5 Lsize= 428kB time=00:00:03.26 bitrate=1072.8kbits/s
video:390kB audio:0kB subtitle:0 data:0 global headers:0kB muxing overhead 9.770431%