Recherche avancée

Médias (2)

Mot : - Tags -/kml

Autres articles (21)

  • MediaSPIP Core : La Configuration

    9 novembre 2010, par

    MediaSPIP Core fournit par défaut trois pages différentes de configuration (ces pages utilisent le plugin de configuration CFG pour fonctionner) : une page spécifique à la configuration générale du squelettes ; une page spécifique à la configuration de la page d’accueil du site ; une page spécifique à la configuration des secteurs ;
    Il fournit également une page supplémentaire qui n’apparait que lorsque certains plugins sont activés permettant de contrôler l’affichage et les fonctionnalités spécifiques (...)

  • Use, discuss, criticize

    13 avril 2011, par

    Talk to people directly involved in MediaSPIP’s development, or to people around you who could use MediaSPIP to share, enhance or develop their creative projects.
    The bigger the community, the more MediaSPIP’s potential will be explored and the faster the software will evolve.
    A discussion list is available for all exchanges between users.

  • Emballe médias : à quoi cela sert ?

    4 février 2011, par

    Ce plugin vise à gérer des sites de mise en ligne de documents de tous types.
    Il crée des "médias", à savoir : un "média" est un article au sens SPIP créé automatiquement lors du téléversement d’un document qu’il soit audio, vidéo, image ou textuel ; un seul document ne peut être lié à un article dit "média" ;

Sur d’autres sites (2866)

  • Vagrant provision fails to execute the next script without an obvious reason why

    14 juin 2016, par JakeTheSnake

    I’ve created/co-opted several bash scripts to provision my guest Ubuntu 14.04 OS ; the one giving me trouble right now is installing ffmpeg. When the script finishes, vagrant simply does nothing save for sending SSH keep-alives.

    Host OS : Windows 7 x64

    The last output before the infinitely repeating keep-alives is :

    INSTALL libavutil/sha.h
    INSTALL libavutil/sha512.h
    INSTALL libavutil/stereo3d.h
    INSTALL libavutil/threadmessage.h
    INSTALL libavutil/time.h
    INSTALL libavutil/timecode.h
    INSTALL libavutil/timestamp.h
    INSTALL libavutil/tree.h
    INSTALL libavutil/twofish.h
    INSTALL libavutil/version.h
    INSTALL libavutil/xtea.h
    INSTALL libavutil/tea.h
    INSTALL libavutil/lzo.h
    INSTALL libavutil/avconfig.h
    INSTALL libavutil/ffversion.h

    DEBUG ssh: stdout: INSTALL      libavutil/libavutil.pc

    DEBUG ssh: stdout: Done

    DEBUG ssh: Sending SSH keep-alive...
    DEBUG ssh: Sending SSH keep-alive...
    DEBUG ssh: Sending SSH keep-alive...

    Here are the relevant scripts :

    Vagrantfile

    # -*- mode: ruby -*-
    # vi: set ft=ruby :

    # All Vagrant configuration is done below. The "2" in Vagrant.configure
    # configures the configuration version (we support older styles for
    # backwards compatibility). Please don't change it unless you know what
    # you're doing.
    Vagrant.configure(2) do |config|
     # The most common configuration options are documented and commented below.
     # For a complete reference, please see the online documentation at
     # https://docs.vagrantup.com.

     # Every Vagrant development environment requires a box. You can search for
     # boxes at https://atlas.hashicorp.com/search.
     config.vm.box = 'ubuntu/trusty64'
     config.vm.hostname = 'dev'

     config.ssh.forward_agent = true
     config.ssh.pty = true

     # Create a private network, which allows host-only access to the machine
     # using a specific IP.
     config.vm.network :private_network, type: :dhcp, auto_config: false

     # Create a public network, which generally matched to bridged network.
     # Bridged networks make the machine appear as another physical device on
     # your network.
     config.vm.network :public_network,
                       ip: '192.168.11.14',
                       bridge: 'Realtek PCIe GBE Family Controller'

     # Share an additional folder to the guest VM. The first argument is
     # the path on the host to the actual folder. The second argument is
     # the path on the guest to mount the folder. And the optional third
     # argument is a set of non-required options.
     #
     # Do not share root directory of vagrant
     # config.vm.synced_folder '.', '/vagrant', disabled: true
     # Share ruby repository directories
     config.vm.synced_folder '.',
                             '/home/vagrant/apps',
                             nfs: true,
                             mount_options: [
                               'nfsvers=3',
                               'vers=3',
                               'actimeo=1',
                               'rsize=8192',
                               'wsize=8192',
                               'timeo=14',
                               :nolock,
                               :udp,
                               :intr,
                               :user,
                               :auto,
                               :exec,
                               :rw
                             ]

     # Provider-specific configuration so you can fine-tune various
     # backing providers for Vagrant. These expose provider-specific options.
     # Example for VirtualBox:
     #
     config.vm.provider :virtualbox do |vb|
       # Display the VirtualBox GUI when booting the machine
       vb.gui = true

       # Use VBoxManage to customize the VM.
       vb.name = 'Ubuntu'
       vb.cpus = 4
       vb.memory = 2048
       vb.customize ['modifyvm', :id, '--vram', 64]
       vb.customize ['modifyvm', :id, '--audio', :dsound]
       vb.customize ['modifyvm', :id, '--audiocontroller', :ac97]
       vb.customize ['modifyvm', :id, '--clipboard', :bidirectional]
     end

     # Provisioning
     config.vm.provision :shell, path: './provisioning/user/install-apps.sh',
                                 privileged: false, name: 'Applications'
     config.vm.provision :shell, path: './provisioning/user/install-rvm.sh',
                                 args: 'stable', privileged: false, name: 'RVM'
     config.vm.provision :shell, path: './provisioning/user/install-ruby.sh',
                                 args: '2.3.1', privileged: false, name: 'Ruby'
     config.vm.provision :shell, path: './provisioning/user/install-ruby-gems.sh',
                                 privileged: false, name: 'Ruby Gems'
     config.vm.provision :shell, path: './provisioning/root/install-nginx.sh',
                                 args: '1.9.9', name: 'Nginx'

     config.vm.provision :chef_solo do |chef|
       # chef.version = '12.10.40'

       # Paths to your cookbooks (on the host)
       chef.cookbooks_path = ['cookbooks']
       # Add chef recipes
       chef.add_recipe 'apt'
       chef.add_recipe 'git' # Is required for NPM
       chef.add_recipe 'sqlite'
       chef.add_recipe 'mysql'
       chef.add_recipe 'nodejs'
       chef.add_recipe 'memcached'
       chef.add_recipe 'imagemagick'
       chef.add_recipe 'optipng'
       chef.add_recipe 'sublime-text'
       chef.add_recipe 'tomcat'
     end
    end

    install-apps.sh

    #!/usr/bin/env bash

    echo Turning off console beeps...
    grep '^set bell-style none' /etc/inputrc || echo 'set bell-style none' >> /etc/inputrc

    echo Installing languages
    sudo apt-get -y update
    sudo locale-gen en_US en_US.UTF-8
    sudo dpkg-reconfigure locales

    echo Installing essential apps
    sudo apt-get -y install build-essential curl yasm

    echo Installing desktop apps
    sudo apt-get -y install ubuntu-desktop

    hash ffmpeg 2>/dev/null || {
     # Build ffmpeg
     echo Installing ffmpeg

     sudo apt-get -y install autoconf automake libass-dev libfreetype6-dev \
       libsdl1.2-dev libtheora-dev libtool libva-dev libvdpau-dev libvorbis-dev libxcb1-dev libxcb-shm0-dev \
       libxcb-xfixes0-dev pkg-config texinfo zlib1g-dev libx264-dev libmp3lame-dev libopus-dev

     mkdir ~/ffmpeg_sources
     cd ~/ffmpeg_sources
     wget http://ffmpeg.org/releases/ffmpeg-snapshot.tar.bz2
     tar xjvf ffmpeg-snapshot.tar.bz2
     cd ffmpeg
     PATH="$HOME/bin:$PATH" PKG_CONFIG_PATH="$HOME/ffmpeg_build/lib/pkgconfig" ./configure \
       --prefix="$HOME/ffmpeg_build" \
       --pkg-config-flags="--static" \
       --extra-cflags="-I$HOME/ffmpeg_build/include" \
       --extra-ldflags="-L$HOME/ffmpeg_build/lib" \
       --bindir="$HOME/bin" \
       --enable-gpl \
       --enable-libass \
       --enable-libfreetype \
       --enable-libmp3lame \
       --enable-libopus \
       --enable-libtheora \
       --enable-libvorbis \
       --enable-libx264 \
       --enable-nonfree

     PATH="$HOME/bin:$PATH" make
     make install
     make distclean
     hash -r

     source ~/.profile
    }

    echo Done
    exit 0

    install-rvm.sh

    #!/usr/bin/env bash

    echo Installing RVM gpg key
    gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 --trust-model always

    echo Installing RVM
    \curl -sSL https://get.rvm.io | bash -s $1

    exit 0

    I won’t include the other scripts for the sake of brevity. When logging into vagrant with the gui nothing seems out of the ordinary, and ffmpeg is available...but nothing else is provisioned. No RVM, no Nginx, nothing.

  • Program hangs while using ffprobe on file with teletext subtitles

    6 août 2012, par Jon

    Having a problem running ffprobe on an MKV file that contains teletext subtitles. Code is in a C# library and works fine for other MKV files.

    Running the latest :

    ffprobe -v

    ffprobe version N-42347-g299387e Copyright (c) 2007-2012 the FFmpeg developers
     built on Jul  8 2012 15:44:54 with gcc 4.7.1

    Code :

    string args = string.Format("-show_format -show_streams \"{0}\"", FileName);

    Process p = new Process();
    p.StartInfo = new ProcessStartInfo(FFPROBE_PATH);
    p.StartInfo.Arguments = args;
    p.StartInfo.CreateNoWindow = true;
    p.StartInfo.RedirectStandardOutput = true;
    p.StartInfo.RedirectStandardError = true;
    p.StartInfo.UseShellExecute = false;
    p.StartInfo.WorkingDirectory = System.IO.Directory.GetCurrentDirectory();
    p.Start();

    while (!p.HasExited)
    {
       System.Threading.Thread.Sleep(100);
    }

    string output = p.StandardOutput.ReadToEnd().Replace("\r\n", "\n");

    The filename has a UNC path - tried using the FileName parameter but got an error, hence passing the filename via the arguments.

    If I run the following commandline :

    ffprobe -show_format -show_streams "\192.168.10.1\content\Breakfast At Tiffany's sample preview.mkv"

    I get the following output (note the errors - "Unsupported codec with id ...") :

    ffprobe -show_format -show_streams "\\192.168.10.1\content\Breakfast At Tiffany's sample preview.mkv"

    ffprobe version N-42347-g299387e Copyright (c) 2007-2012 the FFmpeg developers
     built on Jul  8 2012 15:44:54 with gcc 4.7.1
     configuration: --enable-gpl --enable-version3 --disable-w32threads --enable-runtime-cpudetect --enable-avisynth --enable-bzlib --enable-fr
    ei0r --enable-libass --enable-libcelt --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libfreetype --enable-libgsm --enable-li
    bmp3lame --enable-libnut --enable-libopenjpeg --enable-librtmp --enable-libschroedinger --enable-libspeex --enable-libtheora --enable-libutv
    ideo --enable-libvo-aacenc --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libxavs --enable-libxvid --e
    nable-zlib
     libavutil      51. 64.100 / 51. 64.100
     libavcodec     54. 33.100 / 54. 33.100
     libavformat    54. 15.102 / 54. 15.102
     libavdevice    54.  1.100 / 54.  1.100
     libavfilter     3.  1.100 /  3.  1.100
     libswscale      2.  1.100 /  2.  1.100
     libswresample   0. 15.100 /  0. 15.100
     libpostproc    52.  0.100 / 52.  0.100
    Input #0, matroska,webm, from 'c:\dev\content\Breakfast At Tiffany's sample preview.mkv':
     Metadata:
       creation_time   : 2011-12-14 21:27:01
     Duration: 00:01:02.77, start: 0.000000, bitrate: 4071 kb/s
       Stream #0:0: Video: h264 (High), yuv420p, 1920x1080 [SAR 1:1 DAR 16:9], 23.98 fps, 23.98 tbr, 1k tbn, 47.95 tbc (default)
       Metadata:
         title           : x264   1920x1080   Bitrate=4776 kbps   AvQuant=21.406   Rip by ShivaShanti
       Stream #0:1(eng): Audio: ac3, 48000 Hz, 5.1(side), s16, 448 kb/s (default)
       Metadata:
         title           : English Ac3 5.1 chnls 448 kbps
       Stream #0:2(ita): Audio: ac3, 48000 Hz, stereo, s16, 224 kb/s
       Metadata:
         title           : Italian Ac3 2.0 chnls 224  kbps
       Stream #0:3(eng): Subtitle: text (default)
       Metadata:
         title           : english
       Stream #0:4(ita): Subtitle: text
       Metadata:
         title           : italian
       Stream #0:5(dan): Subtitle: text
       Metadata:
         title           : danish
       Stream #0:6(dut): Subtitle: text
       Metadata:
         title           : dutch
       Stream #0:7(fin): Subtitle: text
       Metadata:
         title           : finnish
       Stream #0:8(fre): Subtitle: text
       Metadata:
         title           : french
       Stream #0:9(ger): Subtitle: text
       Metadata:
         title           : german
       Stream #0:10(nor): Subtitle: text
       Metadata:
         title           : norwegian
       Stream #0:11(spa): Subtitle: text
       Metadata:
         title           : spanish
       Stream #0:12(swe): Subtitle: text
       Metadata:
         title           : swedish
       Stream #0:13(eng): Subtitle: text
       Metadata:
         title           : english hearig impaired
    Unsupported codec with id 94210 for input stream 3
    Unsupported codec with id 94210 for input stream 4
    Unsupported codec with id 94210 for input stream 5
    Unsupported codec with id 94210 for input stream 6
    Unsupported codec with id 94210 for input stream 7
    Unsupported codec with id 94210 for input stream 8
    Unsupported codec with id 94210 for input stream 9
    Unsupported codec with id 94210 for input stream 10
    Unsupported codec with id 94210 for input stream 11
    Unsupported codec with id 94210 for input stream 12
    Unsupported codec with id 94210 for input stream 13
    [STREAM]
    index=0
    codec_name=h264
    codec_long_name=H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10
    profile=High
    codec_type=video
    codec_time_base=1001/48000
    codec_tag_string=[0][0][0][0]
    codec_tag=0x0000
    width=1920
    height=1080
    has_b_frames=2
    sample_aspect_ratio=1:1
    display_aspect_ratio=16:9
    pix_fmt=yuv420p
    level=41
    timecode=N/A
    is_avc=1
    nal_length_size=4
    id=N/A
    r_frame_rate=24000/1001
    avg_frame_rate=24000/1001
    time_base=1/1000
    start_time=0.000000
    duration=N/A
    bit_rate=N/A
    nb_frames=N/A
    nb_read_frames=N/A
    nb_read_packets=N/A
    TAG:title=x264   1920x1080   Bitrate=4776 kbps   AvQuant=21.406   Rip by ShivaShanti
    [/STREAM]
    [STREAM]
    index=1
    codec_name=ac3
    codec_long_name=ATSC A/52A (AC-3)
    profile=unknown
    codec_type=audio
    codec_time_base=1/48000
    codec_tag_string=[0][0][0][0]
    codec_tag=0x0000
    sample_fmt=s16
    sample_rate=48000
    channels=6
    bits_per_sample=0
    dmix_mode=-1
    ltrt_cmixlev=-1.000000
    ltrt_surmixlev=-1.000000
    loro_cmixlev=-1.000000
    loro_surmixlev=-1.000000
    id=N/A
    r_frame_rate=0/0
    avg_frame_rate=0/0
    time_base=1/1000
    start_time=0.000000
    duration=N/A
    bit_rate=448000
    nb_frames=N/A
    nb_read_frames=N/A
    nb_read_packets=N/A
    TAG:language=eng
    TAG:title=English Ac3 5.1 chnls 448 kbps
    [/STREAM]
    [STREAM]
    index=2
    codec_name=ac3
    codec_long_name=ATSC A/52A (AC-3)
    profile=unknown
    codec_type=audio
    codec_time_base=1/48000
    codec_tag_string=[0][0][0][0]
    codec_tag=0x0000
    sample_fmt=s16
    sample_rate=48000
    channels=2
    bits_per_sample=0
    dmix_mode=-1
    ltrt_cmixlev=-1.000000
    ltrt_surmixlev=-1.000000
    loro_cmixlev=-1.000000
    loro_surmixlev=-1.000000
    id=N/A
    r_frame_rate=0/0
    avg_frame_rate=0/0
    time_base=1/1000
    start_time=0.000000
    duration=N/A
    bit_rate=224000
    nb_frames=N/A
    nb_read_frames=N/A
    nb_read_packets=N/A
    TAG:language=ita
    TAG:title=Italian Ac3 2.0 chnls 224  kbps
    [/STREAM]
    [STREAM]
    index=3
    codec_name=unknown
    codec_long_name=unknown
    profile=unknown
    codec_type=subtitle
    codec_time_base=1/1000
    codec_tag_string=[0][0][0][0]
    codec_tag=0x0000
    id=N/A
    r_frame_rate=0/0
    avg_frame_rate=0/0
    time_base=1/1000
    start_time=0.000000
    duration=N/A
    bit_rate=N/A
    nb_frames=N/A
    nb_read_frames=N/A
    nb_read_packets=N/A
    TAG:language=eng
    TAG:title=english
    [/STREAM]
    [STREAM]
    index=4
    codec_name=unknown
    codec_long_name=unknown
    profile=unknown
    codec_type=subtitle
    codec_time_base=1/1000
    codec_tag_string=[0][0][0][0]
    codec_tag=0x0000
    id=N/A
    r_frame_rate=0/0
    avg_frame_rate=0/0
    time_base=1/1000
    start_time=0.000000
    duration=N/A
    bit_rate=N/A
    nb_frames=N/A
    nb_read_frames=N/A
    nb_read_packets=N/A
    TAG:language=ita
    TAG:title=italian
    [/STREAM]
    [STREAM]
    index=5
    codec_name=unknown
    codec_long_name=unknown
    profile=unknown
    codec_type=subtitle
    codec_time_base=1/1000
    codec_tag_string=[0][0][0][0]
    codec_tag=0x0000
    id=N/A
    r_frame_rate=0/0
    avg_frame_rate=0/0
    time_base=1/1000
    start_time=0.000000
    duration=N/A
    bit_rate=N/A
    nb_frames=N/A
    nb_read_frames=N/A
    nb_read_packets=N/A
    TAG:language=dan
    TAG:title=danish
    [/STREAM]
    [STREAM]
    index=6
    codec_name=unknown
    codec_long_name=unknown
    profile=unknown
    codec_type=subtitle
    codec_time_base=1/1000
    codec_tag_string=[0][0][0][0]
    codec_tag=0x0000
    id=N/A
    r_frame_rate=0/0
    avg_frame_rate=0/0
    time_base=1/1000
    start_time=0.000000
    duration=N/A
    bit_rate=N/A
    nb_frames=N/A
    nb_read_frames=N/A
    nb_read_packets=N/A
    TAG:language=dut
    TAG:title=dutch
    [/STREAM]
    [STREAM]
    index=7
    codec_name=unknown
    codec_long_name=unknown
    profile=unknown
    codec_type=subtitle
    codec_time_base=1/1000
    codec_tag_string=[0][0][0][0]
    codec_tag=0x0000
    id=N/A
    r_frame_rate=0/0
    avg_frame_rate=0/0
    time_base=1/1000
    start_time=0.000000
    duration=N/A
    bit_rate=N/A
    nb_frames=N/A
    nb_read_frames=N/A
    nb_read_packets=N/A
    TAG:language=fin
    TAG:title=finnish
    [/STREAM]
    [STREAM]
    index=8
    codec_name=unknown
    codec_long_name=unknown
    profile=unknown
    codec_type=subtitle
    codec_time_base=1/1000
    codec_tag_string=[0][0][0][0]
    codec_tag=0x0000
    id=N/A
    r_frame_rate=0/0
    avg_frame_rate=0/0
    time_base=1/1000
    start_time=0.000000
    duration=N/A
    bit_rate=N/A
    nb_frames=N/A
    nb_read_frames=N/A
    nb_read_packets=N/A
    TAG:language=fre
    TAG:title=french
    [/STREAM]
    [STREAM]
    index=9
    codec_name=unknown
    codec_long_name=unknown
    profile=unknown
    codec_type=subtitle
    codec_time_base=1/1000
    codec_tag_string=[0][0][0][0]
    codec_tag=0x0000
    id=N/A
    r_frame_rate=0/0
    avg_frame_rate=0/0
    time_base=1/1000
    start_time=0.000000
    duration=N/A
    bit_rate=N/A
    nb_frames=N/A
    nb_read_frames=N/A
    nb_read_packets=N/A
    TAG:language=ger
    TAG:title=german
    [/STREAM]
    [STREAM]
    index=10
    codec_name=unknown
    codec_long_name=unknown
    profile=unknown
    codec_type=subtitle
    codec_time_base=1/1000
    codec_tag_string=[0][0][0][0]
    codec_tag=0x0000
    id=N/A
    r_frame_rate=0/0
    avg_frame_rate=0/0
    time_base=1/1000
    start_time=0.000000
    duration=N/A
    bit_rate=N/A
    nb_frames=N/A
    nb_read_frames=N/A
    nb_read_packets=N/A
    TAG:language=nor
    TAG:title=norwegian
    [/STREAM]
    [STREAM]
    index=11
    codec_name=unknown
    codec_long_name=unknown
    profile=unknown
    codec_type=subtitle
    codec_time_base=1/1000
    codec_tag_string=[0][0][0][0]
    codec_tag=0x0000
    id=N/A
    r_frame_rate=0/0
    avg_frame_rate=0/0
    time_base=1/1000
    start_time=0.000000
    duration=N/A
    bit_rate=N/A
    nb_frames=N/A
    nb_read_frames=N/A
    nb_read_packets=N/A
    TAG:language=spa
    TAG:title=spanish
    [/STREAM]
    [STREAM]
    index=12
    codec_name=unknown
    codec_long_name=unknown
    profile=unknown
    codec_type=subtitle
    codec_time_base=1/1000
    codec_tag_string=[0][0][0][0]
    codec_tag=0x0000
    id=N/A
    r_frame_rate=0/0
    avg_frame_rate=0/0
    time_base=1/1000
    start_time=0.000000
    duration=N/A
    bit_rate=N/A
    nb_frames=N/A
    nb_read_frames=N/A
    nb_read_packets=N/A
    TAG:language=swe
    TAG:title=swedish
    [/STREAM]
    [STREAM]
    index=13
    codec_name=unknown
    codec_long_name=unknown
    profile=unknown
    codec_type=subtitle
    codec_time_base=1/1000
    codec_tag_string=[0][0][0][0]
    codec_tag=0x0000
    id=N/A
    r_frame_rate=0/0
    avg_frame_rate=0/0
    time_base=1/1000
    start_time=0.000000
    duration=N/A
    bit_rate=N/A
    nb_frames=N/A
    nb_read_frames=N/A
    nb_read_packets=N/A
    TAG:language=eng
    TAG:title=english hearig impaired
    [/STREAM]
    [FORMAT]
    filename=c:\dev\content\Breakfast At Tiffany's sample preview.mkv
    nb_streams=14
    format_name=matroska,webm
    format_long_name=Matroska/WebM file format
    start_time=0.000000
    duration=62.776000
    size=31947628
    bit_rate=4071317
    TAG:creation_time=2011-12-14 21:27:01
    [/FORMAT]

    My problem is, the process appears to hang. I took out the 'CreateNoWindow' option and, of course, I get a big blank window onscreen that normally just flashs by on a normal file. With the teletext subtitle file however, it persists. If I manually close it, the program continues and I seem to get the output I want.

    So my question is, how can I debug this further, to find out why this is hanging and how to handle the error (or simply ignore it) and continue ?

  • python - subprocess.Popen fails to correctly pipe urllib3 Response

    11 février 2018, par user2963567

    I want to open a file over a network and pipe it directly to ffmpeg using subprocess.Popen. The goal is to stream the audio file data directly into ffmpeg. Here is the code :

    # test.py
    import subprocess, sys, urllib3, time

    http = urllib3.PoolManager()
    r = http.urlopen('GET', sys.argv[1], preload_content=False)

    args = 'ffmpeg -i - -y audio.mp3'.split(' ')
    subprocess.Popen(args, stdin=r)

    r.close()

    If I run a local HTTP server and give the program the url, it works successfully, and ffmpeg processes it.

    $ python3 test.py http://192.168.1.200/original.webm

    However if I try to retrieve from a remote server, such as that below, ffmpeg fails.

    $ python3 test.py https://cdn.discordapp.com/attachments/304959901376053248/412003156638040084/original.webm

    with the following output

    pipe:: Invalid data found when processing input

    I expected this code to produce the same results as running this terminal command. This command succeeds for both the discord cdn URL and a local HTTP server url.

    $ curl [file url] | ffmpeg -i - -y audio.mp3

    I’m using python 3.5 on Linux, and ffmpeg 3.4.1.

    edit 1

    I’m now leaning towards thinking it’s not ffmpeg’s fault, and more about how Popen is reading/writing the urllib response to a process’ stdin. By running a local netcat server and sending the output to a file ($ nc -l 1234 > nc_output.webm) and adjusting the script like so :

    import subprocess, sys, urllib3, time

    http = urllib3.PoolManager()
    r = http.urlopen('GET', sys.argv[1], preload_content=False)

    args = 'nc 192.168.1.200 1234'.split(' ')
    subprocess.run(args, stdin=r)

    r.close()

    Then running as $ python3 test.py https://cdn.discordapp.com/attachments/304959901376053248/412003156638040084/original.webm

    By comparing nc_output.webm with the original.webm file, I can immediately see that nc_output.webm is slightly larger (4017585 bytes, vs 4008589 bytes). Attempting to play nc_output.webm (mpv, vlc, ffprobe) also fails, which explains why ffmpeg was complaining. Whatever Popen is doing to the stream’s bytes is sufficient to make the output file useless.

    However, the problem still ceases to occur if the URL points to a local HTTP server, such as one run from python -m SimpleHTTPServer which leads me to think that this is related to the latency associated with reading from a remote origin.