FFMPEG-使用所有流(字幕)和水印将MKV转换为MP4

新治

我花了几个小时进行研究,但仍然有问题...我想将.mkv文件转换为带有水印和字幕(来自mkv)的.mp4。

我尝试了很少的命令,但总是出现错误或没有字幕的水印成功这是我尝试的一些命令(不是全部):

部分成功-有些文件带有字幕转换,但是我有153个没有字幕转换的文件...(都从.mkv到.mp4):

ffmpeg -i 025.mkv -vf "movie=logovideo2.png [watermark]; [in][watermark] overlay=main_w-overlay_w-10:10,subtitles=025.mkv [out]" 25.mp4

ffmpeg -i 001.mkv -i logovideo2.png -filter_complex "[0:v][1:v]overlay=0:0,subtitles=001.mkv[out]" -map "[out]" -map 0:a -c:s ass 001.mp4

失败-出现错误的命令:

ffmpeg -i 001.mkv -i logovideo2.png -filter_complex "[0:v][1:v]overlay=0:0[out]" -map "[out]" -map 0:a -map 0:s -c:s ass 001.mp4

代码(错误):

ffmpeg version N-81036-g2b14204 Copyright (c) 2000-2016 the FFmpeg developers
  built with gcc 4.8.5 (GCC) 20150623 (Red Hat 4.8.5-4)
  configuration: --prefix=/root/ffmpeg_build --extra-cflags=-I/root/ffmpeg_build/include --extra-ldflags=-L/root/ffmpeg_build/lib --bindir=/root/bin --pkg-config-flags=--static --enable-gpl --enable-nonfree --enable-libfdk-aac --enable-libfreetype --enable-libmp3lame --enable-libopus --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libx265 --enable-libass
  libavutil      55. 28.100 / 55. 28.100
  libavcodec     57. 50.100 / 57. 50.100
  libavformat    57. 42.100 / 57. 42.100
  libavdevice    57.  0.102 / 57.  0.102
  libavfilter     6. 47.100 /  6. 47.100
  libswscale      4.  1.100 /  4.  1.100
  libswresample   2.  1.100 /  2.  1.100
  libpostproc    54.  0.100 / 54.  0.100
Input #0, matroska,webm, from '001.mkv':
  Metadata:
    title           : DB
    encoder         : libebml v1.2.1 + libmatroska v1.1.1
    creation_time   : 2011-09-15 16:44:37
  Duration: 00:24:39.37, start: 0.000000, bitrate: 1429 kb/s
    Stream #0:0(jpn): Audio: vorbis, 48000 Hz, stereo, fltp (default)
    Stream #0:1: Video: h264 (High), yuv420p, 720x540 [SAR 1:1 DAR 4:3], 23.98 fps, 23.98 tbr, 1k tbn, 47.95 tbc (default)
    Stream #0:2(pol): Subtitle: ass (default)
    Metadata:
      title           : Grupa
Input #1, png_pipe, from 'logovideo2.png':
  Duration: N/A, bitrate: N/A
    Stream #1:0: Video: png, rgba(pc), 235x50 [SAR 2835:2835 DAR 47:10], 25 tbr, 25 tbn, 25 tbc
File '001.mp4' already exists. Overwrite ? [y/N] y
[libx264 @ 0x43c7a80] using SAR=1/1
[libx264 @ 0x43c7a80] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2
[libx264 @ 0x43c7a80] profile High, level 3.0
[libx264 @ 0x43c7a80] 264 - core 148 r2 3f5ed56 - H.264/MPEG-4 AVC codec - Copyleft 2003-2016 - http://www.videolan.org/x264.html - options: cabac=1 ref=3 deblock=1:0:0 analyse=0x3:0x113 me=hex subme=7 psy=1 psy_rd=1.00:0.00 mixed_ref=1 me_range=16 chroma_me=1 trellis=1 8x8dct=1 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=-2 threads=12 lookahead_threads=2 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=3 b_pyramid=2 b_adapt=1 b_bias=0 direct=1 weightb=1 open_gop=0 weightp=2 keyint=250 keyint_min=23 scenecut=40 intra_refresh=0 rc_lookahead=40 rc=crf mbtree=1 crf=23.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00
**[mp4 @ 0x442c9e0] Using AVStream.codec to pass codec parameters to muxers is deprecated, use AVStream.codecpar instead.
    Last message repeated 2 times
[mp4 @ 0x442c9e0] Could not find tag for codec ass in stream #2, codec not currently supported in container**
Output #0, mp4, to '001.mp4':
  Metadata:
    title           : DB
    encoder         : Lavf57.42.100
    Stream #0:0: Video: h264 (libx264) ([33][0][0][0] / 0x0021), yuv420p, 720x540 [SAR 1:1 DAR 4:3], q=-1--1, 23.98 fps, 24k tbn, 23.98 tbc (default)
    Metadata:
      encoder         : Lavc57.50.100 libx264
    Side data:
      cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: -1
    Stream #0:1(jpn): Audio: aac (LC) ([64][0][0][0] / 0x0040), 48000 Hz, stereo, fltp, 128 kb/s (default)
    Metadata:
      encoder         : Lavc57.50.100 aac
    Stream #0:2(pol): Subtitle: ass (default)
    Metadata:
      title           : Grupa
      encoder         : Lavc57.50.100 ass
Stream mapping:
  Stream #0:1 (h264) -> overlay:main (graph 0)
  Stream #1:0 (png) -> overlay:overlay (graph 0)
  overlay (graph 0) -> Stream #0:0 (libx264)
  Stream #0:0 -> #0:1 (vorbis (native) -> aac (native))
  Stream #0:2 -> #0:2 (ass (ssa) -> ass (native))
**Could not write header for output file #0 (incorrect codec parameters ?): Invalid argument**
[aac @ 0x43bf600] Qavg: -nan
新治

命令 ffmpeg -i 001.mkv -i logovideo2.png -filter_complex "[0:v][1:v]overlay=0:0,subtitles=001.mkv[out]" -map "[out]" -map 0:a 001.mp4

没有字幕...输出如下:

ffmpeg version N-81036-g2b14204 Copyright (c) 2000-2016 the FFmpeg developers
  built with gcc 4.8.5 (GCC) 20150623 (Red Hat 4.8.5-4)
  configuration: --prefix=/root/ffmpeg_build --extra-cflags=-I/root/ffmpeg_build/include --extra-ldflags=-L/root/ffmpeg_build/lib --bindir=/root/bin --pkg-config-flags=--static --enable-gpl --enable-nonfree --enable-libfdk-aac --enable-libfreetype --enable-libmp3lame --enable-libopus --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libx265 --enable-libass
  libavutil      55. 28.100 / 55. 28.100
  libavcodec     57. 50.100 / 57. 50.100
  libavformat    57. 42.100 / 57. 42.100
  libavdevice    57.  0.102 / 57.  0.102
  libavfilter     6. 47.100 /  6. 47.100
  libswscale      4.  1.100 /  4.  1.100
  libswresample   2.  1.100 /  2.  1.100
  libpostproc    54.  0.100 / 54.  0.100
Input #0, matroska,webm, from '001.mkv':
  Metadata:
    title           : Dragon Ball #1
    encoder         : libebml v1.2.1 + libmatroska v1.1.1
    creation_time   : 2011-09-15 16:44:37
  Duration: 00:24:39.37, start: 0.000000, bitrate: 1429 kb/s
    Stream #0:0(jpn): Audio: vorbis, 48000 Hz, stereo, fltp (default)
    Stream #0:1: Video: h264 (High), yuv420p, 720x540 [SAR 1:1 DAR 4:3], 23.98 fps, 23.98 tbr, 1k tbn, 47.95 tbc (default)
    Stream #0:2(pol): Subtitle: ass (default)
    Metadata:
      title           : Grupa
Input #1, png_pipe, from 'logovideo2.png':
  Duration: N/A, bitrate: N/A
    Stream #1:0: Video: png, rgba(pc), 235x50 [SAR 2835:2835 DAR 47:10], 25 tbr, 25 tbn, 25 tbc
[Parsed_subtitles_1 @ 0x459aaa0] Shaper: FriBidi 0.19.4 (SIMPLE) HarfBuzz-ng 0.9.36 (COMPLEX)
[Parsed_subtitles_1 @ 0x459aaa0] Using font provider fontconfig
File '001_Dragon_Ball_NapisyPL.mp4' already exists. Overwrite ? [y/N] y
[Parsed_subtitles_1 @ 0x4542f80] Shaper: FriBidi 0.19.4 (SIMPLE) HarfBuzz-ng 0.9.36 (COMPLEX)
[Parsed_subtitles_1 @ 0x4542f80] Using font provider fontconfig
[libx264 @ 0x44fe7a0] using SAR=1/1
[libx264 @ 0x44fe7a0] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2
[libx264 @ 0x44fe7a0] profile High, level 3.0
[libx264 @ 0x44fe7a0] 264 - core 148 r2 3f5ed56 - H.264/MPEG-4 AVC codec - Copyleft 2003-2016 - http://www.videolan.org/x264.html - options: cabac=1 ref=3 deblock=1:0:0 analyse=0x3:0x113 me=hex subme=7 psy=1 psy_rd=1.00:0.00 mixed_ref=1 me_range=16 chroma_me=1 trellis=1 8x8dct=1 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=-2 threads=12 lookahead_threads=2 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=3 b_pyramid=2 b_adapt=1 b_bias=0 direct=1 weightb=1 open_gop=0 weightp=2 keyint=250 keyint_min=23 scenecut=40 intra_refresh=0 rc_lookahead=40 rc=crf mbtree=1 crf=23.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00
[mp4 @ 0x453ad80] Using AVStream.codec to pass codec parameters to muxers is deprecated, use AVStream.codecpar instead.
    Last message repeated 1 times
Output #0, mp4, to '001.mp4':
  Metadata:
    title           : Dragon Ball #1
    encoder         : Lavf57.42.100
    Stream #0:0: Video: h264 (libx264) ([33][0][0][0] / 0x0021), yuv420p, 720x540 [SAR 1:1 DAR 4:3], q=-1--1, 23.98 fps, 24k tbn, 23.98 tbc (default)
    Metadata:
      encoder         : Lavc57.50.100 libx264
    Side data:
      cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: -1
    Stream #0:1(jpn): Audio: aac (LC) ([64][0][0][0] / 0x0040), 48000 Hz, stereo, fltp, 128 kb/s (default)
    Metadata:
      encoder         : Lavc57.50.100 aac
Stream mapping:
  Stream #0:1 (h264) -> overlay:main (graph 0)
  Stream #1:0 (png) -> overlay:overlay (graph 0)
  subtitles (graph 0) -> Stream #0:0 (libx264)
  Stream #0:0 -> #0:1 (vorbis (native) -> aac (native))
Press [q] to stop, [?] for help
frame=34743 fps=108 q=-1.0 Lsize=  150041kB time=00:24:39.38 bitrate= 830.8kbits/s speed=4.59x    
video:125218kB audio:23557kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.851010%
[libx264 @ 0x44fe7a0] frame I:340   Avg QP:19.82  size: 38155
[libx264 @ 0x44fe7a0] frame P:13109 Avg QP:22.20  size:  6213
[libx264 @ 0x44fe7a0] frame B:21294 Avg QP:25.43  size:  1588
[libx264 @ 0x44fe7a0] consecutive B-frames: 14.3%  9.7%  7.2% 68.9%
[libx264 @ 0x44fe7a0] mb I  I16..4:  4.2% 61.7% 34.0%
[libx264 @ 0x44fe7a0] mb P  I16..4:  1.9%  7.1%  2.0%  P16..4: 38.2% 12.2%  7.9%  0.0%  0.0%    skip:30.5%
[libx264 @ 0x44fe7a0] mb B  I16..4:  0.2%  0.8%  0.3%  B16..8: 34.2%  2.9%  0.5%  direct: 1.4%  skip:59.6%  L0:45.0% L1:52.1% BI: 2.9%
[libx264 @ 0x44fe7a0] 8x8 transform intra:63.3% inter:77.4%
[libx264 @ 0x44fe7a0] coded y,uvDC,uvAC intra: 55.9% 74.8% 36.6% inter: 10.9% 18.1% 1.0%
[libx264 @ 0x44fe7a0] i16 v,h,dc,p: 39% 24% 13% 24%
[libx264 @ 0x44fe7a0] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 23% 17% 27%  5%  5%  6%  5%  5%  6%
[libx264 @ 0x44fe7a0] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 27% 20% 14%  6%  7%  8%  6%  6%  5%
[libx264 @ 0x44fe7a0] i8c dc,h,v,p: 48% 24% 22%  6%
[libx264 @ 0x44fe7a0] Weighted P-Frames: Y:5.3% UV:1.0%
[libx264 @ 0x44fe7a0] ref P L0: 65.0% 13.3% 15.4%  6.1%  0.3%
[libx264 @ 0x44fe7a0] ref B L0: 89.1%  8.4%  2.5%
[libx264 @ 0x44fe7a0] ref B L1: 97.2%  2.8%
[libx264 @ 0x44fe7a0] kb/s:707.89
[aac @ 0x45939e0] Qavg: 654.550

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何使用 ffmpeg 将 MKV 转换为 MP4 保留所有视频、音轨和字幕?

来自分类Dev

如何使用FFmpeg和字幕将MKV转换为MP4?

来自分类Dev

如何将带有多个字幕轨道的mkv文件转换为带有使用ffmpeg硬编码的字幕流之一的mp4?

来自分类Dev

如何将MKV文件转换为具有两个音频流且仅需要ffmpeg的MP4的MP4?

来自分类Dev

使用ffmpeg将HDV视频1440x1080p转换为MP4和MKV

来自分类Dev

使用ffmpeg和时间戳顺序将目录中的所有图像转换为.mp4

来自分类Dev

使用ffmpeg和时间戳顺序将目录中的所有图像转换为.mp4

来自分类Dev

ffmpeg将rtp转换为mp4(http)流

来自分类Dev

使用ffmpeg将文件夹中的所有mp4音频文件转换为mp3

来自分类Dev

使用ffmpeg将wmv转换为mp4

来自分类Dev

使用ffmpeg将webm转换为mp4

来自分类Dev

使用ffmpeg将.mov视频转换为.mp4

来自分类Dev

难以使用ffmpeg将示例mkv转换为mp4,并无法在Windows Media Player中播放

来自分类Dev

FFMPEG:将MP4转换为相同的MP4(在不同的容器中)并添加字幕

来自分类Dev

对 ffmpeg 批处理文件进行故障排除。带有字幕硬编码的 mkv 到 mp4 转换

来自分类Dev

使用ffmpeg,如何将MP4,裁剪和调整大小转换为GIF?

来自分类Dev

如何使用FFmpeg将mp4转换为mp4?

来自分类Dev

ffmpeg剪切,将MKV编码为MP4并刻录字幕

来自分类Dev

FFmpeg:使用专辑封面将文件夹中的所有音频(mp3)批量转换为视频(mp4)

来自分类Dev

如何使用ffmpeg将.mp4v转换为.mp4?

来自分类Dev

ffmpeg:容器将MKV更改为MP4流:1个视频,2个音频,1个字幕,1个附件

来自分类Dev

通过ffmpeg将jpg转换为mp4

来自分类Dev

PHP ffmpeg将GIF转换为MP4

来自分类Dev

使用Ffmpeg使用图像将mp3转换为mp4

来自分类Dev

使用ffmpeg将mp4文件夹转换为mp3?

来自分类Dev

如何使用ffmpeg php对mp4视频加水印

来自分类Dev

FFmpeg:mp4和多个srt到mkv

来自分类Dev

使用 ffmpeg 批量转换 MP4

来自分类Dev

使用ffmpeg将mp4转换为相同的高质量avi文件?

Related 相关文章

  1. 1

    如何使用 ffmpeg 将 MKV 转换为 MP4 保留所有视频、音轨和字幕?

  2. 2

    如何使用FFmpeg和字幕将MKV转换为MP4?

  3. 3

    如何将带有多个字幕轨道的mkv文件转换为带有使用ffmpeg硬编码的字幕流之一的mp4?

  4. 4

    如何将MKV文件转换为具有两个音频流且仅需要ffmpeg的MP4的MP4?

  5. 5

    使用ffmpeg将HDV视频1440x1080p转换为MP4和MKV

  6. 6

    使用ffmpeg和时间戳顺序将目录中的所有图像转换为.mp4

  7. 7

    使用ffmpeg和时间戳顺序将目录中的所有图像转换为.mp4

  8. 8

    ffmpeg将rtp转换为mp4(http)流

  9. 9

    使用ffmpeg将文件夹中的所有mp4音频文件转换为mp3

  10. 10

    使用ffmpeg将wmv转换为mp4

  11. 11

    使用ffmpeg将webm转换为mp4

  12. 12

    使用ffmpeg将.mov视频转换为.mp4

  13. 13

    难以使用ffmpeg将示例mkv转换为mp4,并无法在Windows Media Player中播放

  14. 14

    FFMPEG:将MP4转换为相同的MP4(在不同的容器中)并添加字幕

  15. 15

    对 ffmpeg 批处理文件进行故障排除。带有字幕硬编码的 mkv 到 mp4 转换

  16. 16

    使用ffmpeg,如何将MP4,裁剪和调整大小转换为GIF?

  17. 17

    如何使用FFmpeg将mp4转换为mp4?

  18. 18

    ffmpeg剪切,将MKV编码为MP4并刻录字幕

  19. 19

    FFmpeg:使用专辑封面将文件夹中的所有音频(mp3)批量转换为视频(mp4)

  20. 20

    如何使用ffmpeg将.mp4v转换为.mp4?

  21. 21

    ffmpeg:容器将MKV更改为MP4流:1个视频,2个音频,1个字幕,1个附件

  22. 22

    通过ffmpeg将jpg转换为mp4

  23. 23

    PHP ffmpeg将GIF转换为MP4

  24. 24

    使用Ffmpeg使用图像将mp3转换为mp4

  25. 25

    使用ffmpeg将mp4文件夹转换为mp3?

  26. 26

    如何使用ffmpeg php对mp4视频加水印

  27. 27

    FFmpeg:mp4和多个srt到mkv

  28. 28

    使用 ffmpeg 批量转换 MP4

  29. 29

    使用ffmpeg将mp4转换为相同的高质量avi文件?

热门标签

归档