弁財天

ゴフマン「専門家を信じるのではなく、自分自身で考えて判断せよ」

Twitterにアップロード可能な字幕付き動画にffmpegで変換する…update1

フランス語なんて全くわからないのに、動画に日本語字幕を付けるにはどうすればいいのだろう?w

  1. 動画をYouTubeにアップロード
  2. YouTubeで字幕を自動生成
  3. 自動生成された字幕を.srt形式でダウンロード
  4. .srtのフランス語を英語→日本語にGoogle翻訳w
  5. 日本語.srtを.mp4にffmpegでレンダリング
  6. Twitterにアップロードw

ffmpeg -y -i paris_chechen_terror_640x360.mp4 \
-c:v libx264 -crf 18 -pix_fmt yuv420p -strict experimental -r 30 \
-acodec aac \
-vf "pad=ceil(iw/2)*2:ceil(ih/2)*2,subtitles=paris_chechen_terror_jp.srt:force_style='Alignment=6,FontName=uzura_font,OutlineColour=&H100000000,BorderStyle=3,Outline=1,Shadow=0,Fontsize=18'" \
paris_chechen_terror_jp.mp4

-pix_fmt yuv420p とか、
-strict experimental -r 30とか、
-vf "pad=ceil(iw/2)*2:ceil(ih/2)*2"とか、

アップロード可能な動画の条件が微妙に厳しくなってるとかw、しらんがな…

-vf "subtitles=paris_chechen_terror_jp.srt
:force_style='Alignment=6,FontName=uzura_font,
OutlineColour=&H100000000,
BorderStyle=3,Outline=1,Shadow=0,Fontsize=18'"

は.srtファイルを動画の上部真ん中に黒の背景で白抜きで字幕をレンダリングw

$ ffprobe paris_chechen_terror_jp.mp4
ffprobe version 2.8.11 Copyright (c) 2007-2017 the FFmpeg developers
  built with gcc 6.3.1 (GCC) 20161221 (Red Hat 6.3.1-1)
  configuration: --extra-cflags=-fPIC
  libavutil      54. 31.100 / 54. 31.100
  libavcodec     56. 60.100 / 56. 60.100
  libavformat    56. 40.101 / 56. 40.101
  libavdevice    56.  4.100 / 56.  4.100
  libavfilter     5. 40.101 /  5. 40.101
  libswscale      3.  1.101 /  3.  1.101
  libswresample   1.  2.101 /  1.  2.101
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'paris_chechen_terror_jp.mp4':
  Metadata:
    major_brand     : isom
    minor_version   : 512
    compatible_brands: isomiso2avc1mp41
    encoder         : Lavf58.29.100
  Duration: 00:01:31.47, start: 0.021333, bitrate: 541 kb/s
    Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 640x360, 404 kb/s, 30 fps, 30 tbr, 15360 tbn, 60 tbc (default)
    Metadata:
      handler_name    : VideoHandler
    Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 128 kb/s (default)
    Metadata:
      handler_name    : VideoHandler

$ cat paris_chechen_terror_jp.srt
1
00:00:00,000 --> 00:00:05,430
アブダラに近い人物によると
1年前から若者を狙いはじめた。

2
00:00:05,430 --> 00:00:10,170
わずか数ヶ月で18才男子の行動が完全に変わった。

3
00:00:10,170 --> 00:00:15,150
音楽も聞かなくなり、
ガールフレンドに近づかなくなり、
二度と気晴らしで外出しなくなった。

4
00:00:15,150 --> 00:00:20,280
さらにほとんどのチェチェンの友人とも交友を絶ち、

5
00:00:20,280 --> 00:00:24,780
その時点では心配していた母親は息子が悩んでいること、

6
00:00:24,780 --> 00:00:30,510
急激に過激派になってしまったことを
母親も友人も警察に通報しようとは思いませんでした。

7
00:00:30,510 --> 00:00:36,090
彼はツイッターのようなSNSで
内面を隠そうともしてなかった。

8
00:00:36,090 --> 00:00:40,350
スマホの捜査で若者は新しい決心を表明していて、

9
00:00:40,350 --> 00:00:45,420
シリアの戦闘員を訪問する数週間前の
聖戦士との会話の痕跡まで見つかった。

10
00:00:45,420 --> 00:00:50,760
ロシア語インスタグラムでテロリストとして
行動することをシリアで偶然出会った人物に
送信していた。

11
00:00:50,760 --> 00:00:57,120
戦闘員は彼にイスラム圏での殉教者の状況を伝えて、

12
00:00:57,120 --> 00:01:02,040
さらにフランスを去るように伝え、
彼は決断を彼女に打ち明け、

13
00:01:02,040 --> 00:01:07,050
情報の監視レーダー下で交戦を誓った。

14
00:01:07,050 --> 00:01:13,410
報道には多くの疑問点があり、

15
00:01:13,410 --> 00:01:19,380
彼が電話で接触したシリアのクリスとの会話は

16
00:01:19,380 --> 00:01:26,340
危険な性格と呼べるほど十分ではない。

17
00:01:26,340 --> 00:01:30,930
捜査官たちは現在テロ実行につながる
何かをさがしている。

superuser.com→ffmpeg video scale and padding to make it work for twitter
「-pix_fmt yuv420p」

github.com→GitHub - regmibijay/tweetify: Converts any video to mp4 format matching Twitter Video requirements using FFMPEG.

     fargs = 'ffmpeg -y -ss ' + args.ss + ' -i ' + args.i + ' '+ args.dur + ' -vcodec libx264 -vf "pad=ceil(iw/2)*2:ceil(ih/2)*2" -pix_fmt yuv420p -strict experimental -r 30 -t 2:20 -acodec aac -vb 1024k -minrate 1024k -maxrate 1024k -bufsize 1024k -ar 44100 -ac 2 ' + args.o
    if args.dur == "length":
      fargs = 'ffmpeg -y -ss ' + args.ss + ' -i ' + args.i + ' -vcodec libx264 -vf "pad=ceil(iw/2)*2:ceil(ih/2)*2" -pix_fmt yuv420p -strict experimental -r 30 -t 2:20 -acodec aac -vb 1024k -minrate 1024k -maxrate 1024k -bufsize 1024k -ar 44100 -ac 2 ' + args.o

stackoverflow.com→ffmpeg subtitles alignment and position - Stack Overflow
「But according to the Line-Alignment ASS Tags docs, there are only 9 positions. 1: Bottom left, 2: Bottom center, 3: Bottom right, 5: Top left, 6: Top center, 7: Top right, 9: Middle left, 10: Middle center, 11: Middle right」w

投稿されたコメント:

コメント
コメントは無効になっています。