ffmpeg:将纯音频 flv 转换为 swf

Posted

技术标签:

【中文标题】ffmpeg:将纯音频 flv 转换为 swf【英文标题】:ffmpeg: convert audio-only flv to swf 【发布时间】:2011-01-17 02:56:18 【问题描述】:

我的 Flex 应用程序使用 red5 录制纯音频 FLV 文件——我想将这些文件转换为 SWF 文件,以便将它们嵌入到其他 SWF 文件中。 (我也可以转换为 MP3,然后自己将它们嵌入到 SWF 中,但我更喜欢一步解决方案。)

有人有这方面的经验吗?

我尝试过的:

以下幼稚的 ffmpeg 命令失败:

> ffmpeg -i 3139747641.flv -vn movie.swf
FFmpeg version SVN-r21751-snapshot, Copyright (c) 2000-2010 Fabrice Bellard, et al.
  built on Feb 11 2010 09:15:42 with gcc 4.2.1 (SUSE Linux)
  configuration: --enable-gpl --enable-nonfree
  libavutil     50. 9. 0 / 50. 9. 0
  libavcodec    52.53. 0 / 52.53. 0
  libavformat   52.52. 0 / 52.52. 0
  libavdevice   52. 2. 0 / 52. 2. 0
  libswscale     0.10. 0 /  0.10. 0
[flv @ 0x8a5e3a0]Could not find codec parameters (Video: 0x0000)
[flv @ 0x8a5e3a0]Estimating duration from bitrate, this may be inaccurate
Input #0, flv, from '3139747641.flv':
  Metadata:
    audiocodecid    : -1
    duration        : 0
    videocodecid    : -1
    canSeekToEnd    : true
  Duration: 00:00:14.88, start: 0.000000, bitrate: N/A
    Stream #0.0: Video: 0x0000, 1k tbr, 1k tbn, 1k tbc
    Stream #0.1: Audio: nellymoser, 8000 Hz, mono, s16
Output #0, swf, to 'movie.swf':
    Stream #0.0: Audio: 0x0000, 8000 Hz, mono, s16, 64 kb/s
Stream mapping:
  Stream #0.1 -> #0.0
Encoder (codec id 86017) not found for output stream #0.0

我尝试添加一个虚拟视频,但这也失败了:

> ffmpeg -i dummy.mov -i 3139747641.flv movie.swf
<!-- snip -->    
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'dummy.mov':
  Metadata:
    major_brand     : qt  
    minor_version   : 512
    compatible_brands: qt  
    encoder         : Lavf52.52.0
    encoder-eng     : Lavf52.52.0
  Duration: 00:00:00.10, start: 0.000000, bitrate: 62 kb/s
    Stream #0.0(eng): Video: mpeg4, yuv420p, 10x10 [PAR 1:1 DAR 1:1], 1 kb/s, 10 fps, 10 tbr, 10 tbn, 10 tbc
[flv @ 0x8a67fa0]Could not find codec parameters (Video: 0x0000)
[flv @ 0x8a67fa0]Estimating duration from bitrate, this may be inaccurate
Input #1, flv, from '3139747641.flv':
  Metadata:
    audiocodecid    : -1
    duration        : 0
    videocodecid    : -1
    canSeekToEnd    : true
  Duration: 00:00:14.88, start: 0.000000, bitrate: N/A
    Stream #1.0: Video: 0x0000, 1k tbr, 1k tbn, 1k tbc
    Stream #1.1: Audio: nellymoser, 8000 Hz, mono, s16
picture size invalid (0x0)
Cannot allocate temp picture, check pix fmt

【问题讨论】:

【参考方案1】:

安装未剥离的和额外的库

sudo apt-get install ffmpeg libavcodec-extra-53

【讨论】:

谢谢,这对我有用。你为我节省了很长时间的挖掘工作。干杯。【参考方案2】:

您需要安装 libmp3lame。此外,您可能需要尝试将麦克风录音速率设置为 44。

【讨论】:

这是一个关于如何使用 libmp3lame stephenjungels.com/jungels.net/articles/ffmpeg-howto.html 构建 ffmpeg 的教程。它适用于 mac osx,但主要适用于其他平台。

以上是关于ffmpeg:将纯音频 flv 转换为 swf的主要内容,如果未能解决你的问题,请参考以下文章

FFMPEG视频转换问题

ffmpeg_拼接并提取flv视频文件中的音频生成mp3文件

音视频处理之FFmpeg封装格式20180510

如何从 FLV 中提取音频?

基于FFMPEG的封装格式转换器

ffmpeg转码flv到avi《转》