Bộ lọc atempo ffmpeg không hoạt động


0

Khi tôi chạy như sau:

ffmpeg -i input.mp3 -filter:a "atempo=2.0" -vn output.mp3

Tôi hy vọng output.mp3 sẽ nhanh gấp đôi (và một nửa chiều dài) của input.mp3, nhưng nó có cùng tốc độ và độ dài so với input.mp3. Trong thực tế, nó tạo ra chính xác cùng một tệp như khi -filter:a "atempo=2.0"không được sử dụng. Tôi cũng đã thử nghiệm nó trên một đầu ra wav.

Tôi thấy hai cảnh báo tương tự trong đầu ra ( Truncating packet of size 1024 to 597), nhưng không có gì nghiêm trọng.

Làm cách nào để bộ lọc hoạt động?

chỉnh sửa

Đây là đầu ra từ ffmpeg:

ffmpeg -i "1-02 Ein Junge überlebt.mp3" -filter:a "atempo=2.0"  -vn "converted/music.mp3"
ffmpeg version 0.10.12-7:0.10.12-1~saucy1 Copyright (c) 2000-2014 the FFmpeg developers
  built on Apr 26 2014 09:54:16 with gcc 4.8.1
  configuration: --arch=amd64 --disable-stripping --enable-pthreads --enable-runtime-cpudetect --extra-version='7:0.10.12-1~saucy1' --libdir=/usr/lib/x86_64-linux-gnu --prefix=/usr --enable-bzlib --enable-libdc1394 --enable-libfreetype --enable-frei0r --enable-gnutls --enable-libgsm --enable-libmp3lame --enable-librtmp --enable-libopencv --enable-libopenjpeg --enable-libpulse --enable-libschroedinger --enable-libspeex --enable-libtheora --enable-vaapi --enable-vdpau --enable-libvorbis --enable-libvpx --enable-zlib --enable-gpl --enable-postproc --enable-libcdio --enable-x11grab --enable-libx264 --shlibdir=/usr/lib/x86_64-linux-gnu --enable-shared --disable-static
  libavutil      51. 35.100 / 51. 35.100
  libavcodec     53. 61.100 / 53. 61.100
  libavformat    53. 32.100 / 53. 32.100
  libavdevice    53.  4.100 / 53.  4.100
  libavfilter     2. 61.100 /  2. 61.100
  libswscale      2.  1.100 /  2.  1.100
  libswresample   0.  6.100 /  0.  6.100
  libpostproc    52.  0.100 / 52.  0.100
[mp3 @ 0x216f740] max_analyze_duration 5000000 reached at 5004000
Input #0, mp3, from '1-02 Ein Junge überlebt.mp3':
  Duration: 00:05:22.20, start: 0.000000, bitrate: 57 kb/s
    Stream #0:0: Audio: mp3, 32000 Hz, mono, s16, 56 kb/s
File 'converted/music.mp3' already exists. Overwrite ? [y/N] y
Output #0, mp3, to 'converted/music.mp3':
  Metadata:
    TSSE            : Lavf53.32.100
    Stream #0:0: Audio: mp3, 32000 Hz, mono, s16, 128 kb/s
Stream mapping:
  Stream #0:0 -> #0:0 (mp3 -> libmp3lame)
Press [q] to stop, [?] for help
Truncating packet of size 1024 to 597ate= 128.0kbits/s    
Truncating packet of size 1024 to 1
size=    5036kB time=00:05:22.27 bitrate= 128.0kbits/s    
video:0kB audio:5036kB global headers:0kB muxing overhead 0.011849%

Vui lòng bao gồm đầu ra giao diện điều khiển hoàn chỉnh từ lệnh của bạn.
llogan

@LordNeckbeard Tôi đã thêm đầu ra cần thiết dưới dạng chỉnh sửa. Tôi đã khắc phục vấn đề này bằng cách sử dụng các nhị phân Windows của ffmpeg dưới rượu, vì vậy tôi đoán ffmpeg của tôi chỉ là lỗi.
Simon Strerich

2
Bạn nên đăng bài này như một câu trả lời để giúp đỡ những người khác có cùng vấn đề. Và vâng, loạt 0.10 hơi cũ. Chúng tôi đã ở mức 2,5 rồi.
slhck

1
@slhck Tôi đã viết nó như một câu trả lời như bạn yêu cầu.
Simon Strerich

Câu trả lời:


1

Các loại sự cố này dường như có thể khắc phục được bằng cách cập nhật ffmpeg, nhưng tôi hoang tưởng về việc cập nhật / thay đổi bất cứ điều gì về codec trên hệ thống của mình và đã quyết định sử dụng các tệp nhị phân của ffmpeg qua rượu vang. Nó dường như làm việc ổn.

Giấy gói rượu Python:

Tôi đã viết trình bao bọc python sau đây phải

  • đặt trong cùng thư mục với ffmpeg.exe,

  • cho phép thực thi và

  • được liên kết đến / usr / bin / Wineffmpeg.

Mã nguồn:

#!/usr/bin/env python
import subprocess
import sys
import os

#Robust against: ln ... --symbolic
base_dir = os.path.dirname(os.path.realpath(__file__))
ffmpegbin = os.path.join(base_dir, 'ffmpeg.exe')

def wine_path(path):
    return subprocess.check_output(['winepath', '-w', path]).strip()

for i in range(1, len(sys.argv)):
    if sys.argv[i][:8].lower() == 'linpath:':
        sys.argv[i] = wine_path(sys.argv[i][8:].strip())

subprocess.call(['wine', ffmpegbin]+sys.argv[1:])

Nó vượt qua tất cả các tham số dòng lệnh nguyên văn, ngoại trừ nếu bạn cung cấp cho nó một tham số ở dạng linpath:/linux/path/to/x. Sau đó nó chuyển đổi nó thành Z:\wine\path\to\x. Điều này hiếm khi cần thiết mặc dù, vì các đường dẫn tương đối (thường được sử dụng nhất) được biểu thị bởi /dường như hoạt động tốt ngoài hộp.

Đây là một hoạt động thành công:

wineffmpeg -i "1-02 Ein Junge überlebt.mp3" -
filter:a "atempo=2.0"  -vn "converted/music.mp3"
ffmpeg version N-69672-g078be09 Copyright (c) 2000-2015 the FFmpeg developers
  built with gcc 4.9.2 (GCC)
  configuration: --enable-gpl --enable-version3 --disable-w32threads --enable-avisynth --enable-bzlib --enable-fontconfig --enable-frei0r --enable-gnutls --enable-iconv --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libfreetype --enable-libgme --enable-libgsm --enable-libilbc --enable-libmodplug --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-librtmp --enable-libschroedinger --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvo-aacenc --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxavs --enable-libxvid --enable-lzma --enable-decklink --enable-zlib
  libavutil      54. 18.100 / 54. 18.100
  libavcodec     56. 21.102 / 56. 21.102
  libavformat    56. 19.100 / 56. 19.100
  libavdevice    56.  4.100 / 56.  4.100
  libavfilter     5.  9.104 /  5.  9.104
  libswscale      3.  1.101 /  3.  1.101
  libswresample   1.  1.100 /  1.  1.100
  libpostproc    53.  3.100 / 53.  3.100
Input #0, mp3, from '1-02 Ein Junge ├╝berlebt.mp3':
  Duration: 00:05:22.20, start: 0.034531, bitrate: 57 kb/s
    Stream #0:0: Audio: mp3, 32000 Hz, mono, s16p, 57 kb/s
    Metadata:
      encoder         : LAME3.96r
fixme:msvcrt:MSVCRT__wsopen_s : pmode 0x01b6 ignored
Output #0, mp3, to 'converted/music.mp3':
  Metadata:
    TSSE            : Lavf56.19.100
    Stream #0:0: Audio: mp3 (libmp3lame), 32000 Hz, mono, s16p
    Metadata:
      encoder         : Lavc56.21.102 libmp3lame
Stream mapping:
  Stream #0:0 -> #0:0 (mp3 (native) -> mp3 (libmp3lame))
Press [q] to stop, [?] for help
size=     944kB time=00:02:41.06 bitrate=  48.0kbits/s    
video:0kB audio:944kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.023277%

Không cần sử dụng Rượu. Chỉ cần có một bản dựng tĩnhffmpeg cho Linux.
llogan

@LordNeckbeard cảm ơn tuyệt vời! Xin vui lòng cho tôi biết có các bản dựng tĩnh của VLC nữa ...
Simon Strerich

Tôi không chắc về điều đó, nhưng bạn có thể tham khảo Howto: Biên dịch phiên bản phát triển của vlc theo bản phát hành Ubuntu mới nhất .
llogan
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.