Không thể ghép video ffmpeg


9

Tôi có một bitmap mà tôi muốn ghép vào phía trước của nhiều video dưới dạng một màn hình tiêu đề hoặc màn hình từ chối trách nhiệm.

Tôi cố gắng biến nó thành một video có cùng thuộc tính với phần còn lại của video. Vì vậy, trước tiên tôi hướng nội video:

ffmpeg version 2.2.1 Copyright (c) 2000-2014 the FFmpeg developers
  built on Apr 11 2014 22:50:38 with Apple LLVM version 5.1 (clang-503.0.40) (based on LLVM 3.4svn)
  configuration: --prefix=/usr/local/Cellar/ffmpeg/2.2.1 --enable-shared --enable-pthreads --enable-gpl --enable-version3 --enable-nonfree --enable-hardcoded-tables --enable-avresample --enable-vda --cc=clang --host-cflags= --host-ldflags= --enable-libx264 --enable-libfaac --enable-libmp3lame --enable-libxvid
  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.  2.100 /  4.  2.100
  libavresample   1.  2.  0 /  1.  2.  0
  libswscale      2.  5.102 /  2.  5.102
  libswresample   0. 18.100 /  0. 18.100
  libpostproc    52.  3.100 / 52.  3.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'EO1.mp4':
  Metadata:
major_brand     : isom
minor_version   : 512
compatible_brands: isomiso2avc1mp41
creation_time   : 1970-01-01 00:00:00
encoder         : Lavf52.78.3
  Duration: 00:00:17.77, start: 0.000000, bitrate: 582 kb/s
Stream #0:0(eng): Video: h264 (Main) (avc1 / 0x31637661), yuv420p, 584x328 [SAR 1:1 DAR 73:41], 512 kb/s, 23.98 fps, 23.98 tbr, 1199 tbn, 47.96 tbc (default)
Metadata:
  creation_time   : 1970-01-01 00:00:00
  handler_name    : VideoHandler
Stream #0:1(eng): Audio: aac (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 64 kb/s (default)
Metadata:
  creation_time   : 1970-01-01 00:00:00
  handler_name    : SoundHandler

Sau đó, tôi thử và tạo một tệp tương tự:

/usr/local/Cellar/ffmpeg/2.2.1/bin/ffmpeg -y -loop 1 -i Khước từ trách nhiệm

Có vẻ như làm việc ổn. Các video phát tôi sẽ mong đợi nó. Các thuộc tính hóa ra rất giống nhau. Đây là một khác biệt:

< Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'disclaimer.mp4':
---
> Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'EO1.mp4':
18,20c18,21
<     encoder         : Lavf55.33.100
<   Duration: 00:00:05.01, start: 0.000000, bitrate: 21 kb/s
<     Stream #0:0(und): Video: h264 (Main) (avc1 / 0x31637661), yuv420p, 584x328 [SAR 1:1 DAR 73:41], 17 kb/s, 23.98 fps, 23.98 tbr, 19184 tbn, 47.96 tbc (default)
---
>     creation_time   : 1970-01-01 00:00:00
>     encoder         : Lavf52.78.3
>   Duration: 00:00:17.77, start: 0.000000, bitrate: 582 kb/s
>     Stream #0:0(eng): Video: h264 (Main) (avc1 / 0x31637661), yuv420p, 584x328 [SAR 1:1 DAR 73:41], 512 kb/s, 23.98 fps, 23.98 tbr, 1199 tbn, 47.96 tbc (default)
21a23
22a25,28
>     Stream #0:1(eng): Audio: aac (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 64 kb/s (default)
>     Metadata:
>       handler_name    : SoundHandler

Nhưng khi tôi cố gắng nối, tôi gặp lỗi.

> $ cat temporary.txt 

    file disclaimer.mp4
    file EO1.mp4

/usr/local/Cellar/ffmpeg/2.2.1/bin/ffmpeg -y -f concat -i tạm.txt -c sao chép output.mp4

[concat @ 0x7fd880806600] Estimating duration from bitrate, this may be inaccurate
Input #0, concat, from 'temporary.txt':
  Duration: 00:00:00.02, start: 0.000000, bitrate: 17 kb/s
Stream #0:0: Video: h264 (Main) (avc1 / 0x31637661), yuv420p, 584x328 [SAR 1:1 DAR 73:41], 17 kb/s, 23.98 fps, 23.98 tbr, 19184 tbn, 47.96 tbc
Output #0, mp4, to 'output.mp4':
  Metadata:
encoder         : Lavf55.33.100
Stream #0:0: Video: h264 ([33][0][0][0] / 0x0021), yuv420p, 584x328 [SAR 1:1 DAR 73:41], q=2-31, 17 kb/s, 23.98 fps, 19184 tbn, 19184 tbc
Stream mapping:
  Stream #0:0 -> #0:0 (copy)
Press [q] to stop, [?] for help
[mp4 @ 0x7fd880829a00] Non-monotonous DTS in output stream 0:0; previous: 93600, current: 5951; changing to 93601. This may result in incorrect timestamps in the output file.
[concat @ 0x7fd880806600] Invalid stream index 1
[mp4 @ 0x7fd880829a00] Non-monotonous DTS in output stream 0:0; previous: 93601, current: 6001; changing to 93602. This may result in incorrect timestamps in the output file.
[concat @ 0x7fd880806600] Invalid stream index 1
[mp4 @ 0x7fd880829a00] Non-monotonous DTS in output stream 0:0; previous: 93602, current: 6051; changing to 93603. This may result in incorrect timestamps in the output file.

...

frame=  546 fps=0.0 q=-1.0 Lsize=    1127kB time=00:00:04.90 bitrate=1882.9kbits/s    
video:1123kB audio:0kB subtitle:0 data:0 global headers:0kB muxing overhead 0.349865%

Đầu ra có vẻ như chỉ có tệp từ chối trách nhiệm của tôi trong đó chứ không phải phần còn lại của video.

Tôi cũng bối rối tại sao cảm thấy cần phải "ước tính" bất cứ điều gì. Nó biết FPS đầu vào và thời lượng đầu vào. Tôi không chắc đây có phải là vấn đề hay không. Có lẽ nó chỉ là một lỗi.

Tùy chọn khác của tôi là sử dụng "bộ lọc concat" nhưng đó là một mã chuyển đổi bị mất, phải không? Tôi muốn có video thứ hai giống hệt nhau sau khi ghép như trước.

Chỉnh sửa: đã kết thúc thử "giao thức" concat, đó là tùy chọn thứ ba. Các tài liệu không khuyến khích việc sử dụng nó nhưng nó hoạt động tốt hơn hai tài liệu còn lại (Bộ lọc concux và bộ lọc concat).


1
Tò mò- tại sao thời gian sáng tạo của bạn hiển thị năm 1970?
Rajib

Lưu ý rằng thay vì -r 23.98bạn nên sử dụng -r 24000/1001hoặc -r ntsc-film(trừ khi tất nhiên video khác được tạo bằng -r 23.98). Điều này có thể không giải quyết vấn đề hiện tại mặc dù.
llogan

Nếu bạn đang sử dụng bản dựng của riêng mình, bạn có thể cân nhắc thử xây dựng một phiên bản quan trọng khác ...
174140

Câu trả lời:


1

Tôi biết đây có lẽ không phải là câu trả lời bạn đang tìm kiếm nhưng tại sao không sử dụng phần mềm chỉnh sửa video để làm điều này? Chỉnh sửa video có thể lấy các tốc độ khung hình khác nhau, codec, v.v. và kết hợp chúng thành định dạng đích và phần mềm thông thường có thể phát được. Một số chương trình cung cấp chế độ hàng loạt nếu bạn cần thêm từ chối trách nhiệm vào một loạt các video.

Có các biên tập video nguồn mở miễn phí và độc quyền. Tôi nghĩ rằng những gì bạn đang làm là cách bên ngoài những gì concatenate được thiết kế cho cơ bản là kết hợp các tệp có cùng loại và định dạng.


0

Hai video phải được mã hóa chính xác giống như - kích thước tỷ lệ khung hình, tỷ lệ khung hình, khung hình trên giây và tốc độ bit có liên quan.

Hãy thử sử dụng trình chuyển đổi eRrightSofts Super (c). Nó là một GUI rất rộng cho ffmpeg. Nó cũng có "MediaInfo" được nhúng trong đó, vì vậy bạn có thể kiểm tra phim của mình để xem chúng có giống hệt nhau không.

Các tác giả không yêu cầu quyền tác giả ngoại trừ GUI và cung cấp tín dụng đầy đủ cho ffmpeg, v.v.

Nó nên làm những gì bạn yêu cầu và nhiều, nhiều hơn nữa, Đó là phần mềm miễn phí.

Cá nhân tôi đã sử dụng nó để tham gia các tập tin, trích xuất video hoặc âm thanh, mã hóa video thành các định dạng khác nhau. Cái tên nói Super và nó là.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.